“LAMP” stack adalah sekelompok perangkat lunak open-source yang biasanya dipasang bersama untuk memungkinkan server meng-host situs web dan aplikasi web yang dinamis.

Istilah ini sebenarnya adalah akronim yang mewakili sistem operasi Linux, dengan server web Apache. Data situs disimpan dalam database MySQL, dan konten dinamis diproses oleh PHP. Singkatnya LAMP merupakan gabungan antara Linux, Apache, MySQL, PHP

Dalam panduan ini, kami akan menginstal LAMP stack pada server Ubuntu 18.04.

Sebelum Memulai

Untuk menyelesaikan tutorial ini, Anda harus memiliki server Ubuntu 18.04 dengan akun pengguna yang memiliki wewenang sudo non-root dan firewall dasar. Ini dapat dikonfigurasi menggunakan panduan pengaturan server awal untuk Ubuntu 18.04.

Langkah 1 — Install Apache dan Update Firewall

Server web Apache adalah salah satu server web paling populer di dunia. Apache didokumentasikan dengan sangat baik dan telah digunakan secara luas untuk sebagian besar situs web, yang menjadikannya pilihan default yang bagus untuk hosting situs web. Instal Apache menggunakan Ubuntu package manager, apt:

sudo apt update
sudo apt install apache2

Sesuaikan Firewall untuk Mengizinkan Web Traffic

Selanjutnya, dengan asumsi bahwa Anda telah mengikuti instruksi pengaturan server awal dan mengaktifkan firewall UFW, pastikan bahwa firewall Anda memungkinkan lalu lintas HTTP dan HTTPS. Anda dapat memeriksa bahwa UFW memiliki profil aplikasi untuk Apache seperti:

sudo ufw app list

Output

Available applications:
  Apache
  Apache Full
  Apache Secure
  OpenSSH

Jika Anda melihat Apache Full, berarti menunjukkan bahwa UFW memungkinkan lalu lintas ke port 80 dan 443:

sudo ufw app info "Apache Full"

Output

Profile: Apache Full
Title: Web Server (HTTP,HTTPS)
Description: Apache v2 is the next generation of the omnipresent Apache web
server.

Ports:
  80,443/tcp

Izinkan lalu lintas HTTP dan HTTPS yang masuk untuk profil ini:

sudo ufw allow in "Apache Full"

Anda dapat melakukan pemeriksaan langsung untuk memverifikasi bahwa semuanya berjalan sesuai rencana dengan mengunjungi alamat IP publik server Anda di browser web Anda.

http://server_ip_atau_domain

Anda akan melihat halaman web default Ubuntu 18.04 Apache, yang ada untuk tujuan informasi dan pengujian. Seharusnya terlihat seperti ini:

Ubuntu 18.04 Apache default

Jika Anda melihat halaman ini, maka server web Anda sekarang terpasang dengan benar dan dapat diakses melalui firewall Anda.

Cara Menemukan Alamat IP Publik Server Anda

Jika Anda tidak tahu apa alamat IP publik server Anda, ada sejumlah cara untuk menemukannya. Gunakan perintah berikut ini untuk menampilkan Alamat IP publik di Server Anda

ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

Perintah di atas akan memberi Anda dua atau tiga baris output. Semua itu adalah alamat yang benar, tetapi komputer Anda mungkin hanya dapat menggunakan salah satunya, jadi silakan mencoba masing-masing.

Metode alternatif adalah dengan menggunakan utilitas curluntuk menghubungi pihak luar untuk memberi tahu Anda bagaimana ia “melihat” server Anda. Singkatnya cara ini Anda bertanya pada server tertentu dan menanyakan apa alamat IP Anda:

sudo apt install curl
curl http://icanhazip.com

Apa pun metode yang Anda gunakan untuk mendapatkan alamat IP, ketikkan di bilah alamat browser web Anda untuk melihat halaman Apache default.

Langkah 2 — Install MySQL

Sekarang server web Anda sudah aktif dan berjalan, sekarang saatnya untuk menginstal MySQL. MySQL adalah sistem manajemen basis data. Pada dasarnya, MySQL akan mengatur dan menyediakan akses ke database tempat situs Anda dapat menyimpan informasi.

Sekali lagi, gunakan apt untuk download dan menginstal perangkat lunak ini:

sudo apt install mysql-server

Pada titik ini, sistem basis data Anda sekarang telah diatur dan Anda dapat melanjutkan untuk menginstal PHP, komponen terakhir dari LAMP stack.

Langkah 3 — Instal PHP

PHP adalah komponen yang akan memproses kode untuk menampilkan konten dinamis. PHP dapat menjalankan skrip dan terhubung ke database MySQL Anda untuk mendapatkan informasi, dan menyerahkan konten yang diproses ke server web Anda untuk ditampilkan.

Sekali lagi, manfaatkan sistem aptuntuk menginstal PHP. Selain itu, sertakan beberapa paket pembantu kali ini sehingga kode PHP dapat berjalan di bawah server Apache dan berkomunikasi dengan database MySQL :

sudo apt install php libapache2-mod-php php-mysql

Dalam kebanyakan kasus, Anda akan ingin memodifikasi cara Apache melayani file ketika direktori diminta. Saat ini, jika pengguna meminta direktori dari server, Apache akan mencari file bernama index.html terlebih dahulu. Kami ingin memberi tahu server web untuk lebih memilih file PHP daripada yang lain, jadi buat Apache mencari file index.php terlebih dahulu.

Untuk melakukan ini, ketik perintah ini untuk membuka file dir.conf dalam editor teks dengan hak akses root:

sudo nano /etc/apache2/mods-enabled/dir.conf

output dari perintah diatas adalah :

<IfModule mod_dir.c>
    DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>

pindahkah index.php ke posisi pertama setelah DirectoryIndex, contohnya seperti berikut :

<IfModule mod_dir.c>
    DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>

Setelah selesai, simpan dan tutup file dengan menekan CTRL + X. Konfirmasikan penyimpanan dengan mengetik Y dan kemudian tekan ENTER untuk memverifikasi lokasi penyimpanan file.

Setelah ini, mulai ulang server web Apache agar perubahan Anda dikenali. Lakukan ini dengan mengetik ini:

sudo systemctl restart apache2

Anda juga dapat memeriksa status apache2 dengan menggunakan perintah systemctl:

sudo systemctl status apache2

Sample Output

● apache2.service - LSB: Apache2 web server
   Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           └─apache2-systemd.conf
   Active: active (running) since Tue 2018-04-23 14:28:43 EDT; 45s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 13581 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
  Process: 13605 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
    Tasks: 6 (limit: 512)
   CGroup: /system.slice/apache2.service
           ├─13623 /usr/sbin/apache2 -k start
           ├─13626 /usr/sbin/apache2 -k start
           ├─13627 /usr/sbin/apache2 -k start
           ├─13628 /usr/sbin/apache2 -k start
           ├─13629 /usr/sbin/apache2 -k start
           └─13630 /usr/sbin/apache2 -k start

Tekan Q untuk keluar dari output status ini.

Install PHP Modul

Untuk meningkatkan fungsionalitas PHP, Anda memiliki opsi untuk menginstal beberapa modul tambahan. Untuk melihat opsi yang tersedia untuk modul dan libraries PHP :

apt search php- | less

Gunakan tombol panah untuk menggulir ke atas dan ke bawah, dan tekan Q untuk berhenti.

Hasilnya adalah semua komponen opsional yang dapat Anda instal. Ini akan memberi Anda deskripsi singkat untuk masing-masing:

bandwidthd-pgsql/bionic 2.0.1+cvs20090917-10ubuntu1 amd64
  Tracks usage of TCP/IP and builds html files with graphs

bluefish/bionic 2.2.10-1 amd64
  advanced Gtk+ text editor for web and software development

cacti/bionic 1.1.38+ds1-1 all
  web interface for graphing of monitoring systems

ganglia-webfrontend/bionic 3.6.1-3 all
  cluster monitoring toolkit - web front-end

golang-github-unknwon-cae-dev/bionic 0.0~git20160715.0.c6aac99-4 all
  PHP-like Compression and Archive Extensions in Go

haserl/bionic 0.9.35-2 amd64
  CGI scripting program for embedded environments

kdevelop-php-docs/bionic 5.2.1-1ubuntu2 all
  transitional package for kdevelop-php

kdevelop-php-docs-l10n/bionic 5.2.1-1ubuntu2 all
  transitional package for kdevelop-php-l10n
…
:

Untuk mempelajari lebih lanjut tentang apa yang dilakukan setiap modul, Anda dapat mencari di internet untuk informasi lebih lanjut tentang mereka. Atau, lihat deskripsi panjang paket dengan mengetik:

apt show <nama_package>

Akan ada banyak output, dengan satu bidang yang disebut Description yang akan memiliki penjelasan yang panjang tentang fungsi yang disediakan modul.

Misalnya, untuk mengetahui apa yang dilakukan modul php-cli, Anda bisa mengetik ini:

apt show php-cli

Seiring dengan sejumlah besar informasi lain, Anda akan menemukan sesuatu yang terlihat seperti ini:

…
Description: command-line interpreter for the PHP scripting language (default)
 This package provides the /usr/bin/php command interpreter, useful for
 testing PHP scripts from a shell or performing general shell scripting tasks.
 .
 PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
 open source general-purpose scripting language that is especially suited
 for web development and can be embedded into HTML.
 .
 This package is a dependency package, which depends on Ubuntu's default
 PHP version (currently 7.2).
…

Jika, setelah meneliti, Anda memutuskan untuk menginstal paket, Anda dapat melakukannya dengan menggunakan perintah apt install seperti yang telah Anda lakukan untuk perangkat lunak lain.

Jika Anda memutuskan bahwa php-cli adalah sesuatu yang Anda butuhkan, Anda dapat mengetik:

sudo apt install php-cli

Jika Anda ingin menginstal lebih dari satu modul, Anda dapat melakukannya dengan me-listing masing-masing, dipisahkan oleh spasi, mengikuti perintah apt install, seperti ini:

sudo apt install package1 package2

Pada titik ini, LAMP Stack telah diinstal dan dikonfigurasi. Namun, sebelum melakukan perubahan atau menggunakan aplikasi, akan sangat membantu untuk menguji secara proaktif konfigurasi PHP Anda jika ada masalah yang harus diatasi.

Langkah 4 — Testing PHP di Web Server

Untuk menguji apakah sistem Anda dikonfigurasi dengan benar untuk PHP, buat skrip PHP yang sangat mendasar yang disebut info.php. Agar Apache menemukan file ini dan menyajikannya dengan benar, itu harus disimpan ke direktori yang sangat spesifik, yang disebut “root web”.

Di Ubuntu 18.04, direktori ini terletak di /var/www/html/. Buat file di lokasi itu dengan menjalankan:

sudo nano /var/www/html/info.php

Perintah diatas akan membuka file kosong. Tambahkan teks berikut, yang merupakan kode PHP yang valid, di dalam file:
info.php

<?php
phpinfo();
?>

Setelah selesai, simpan dan tutup file.

Sekarang Anda dapat menguji apakah server web Anda dapat menampilkan konten yang dihasilkan oleh skrip PHP ini dengan benar. Untuk mencoba ini, kunjungi halaman ini di browser web Anda. Anda akan memerlukan alamat IP publik server Anda lagi.

Alamat yang ingin Anda kunjungi adalah:

http://your_server_ip/info.php

Halaman yang Anda datangi akan terlihat seperti ini:

Ubuntu 18.04 default PHP info

Halaman ini menyediakan beberapa informasi dasar tentang server Anda dari perspektif PHP. Ini berguna untuk debugging dan untuk memastikan bahwa pengaturan Anda diterapkan dengan benar.

Demi keamanan, Anda mungkin ingin menghapus file ini setelah tes ini karena sebenarnya bisa memberikan informasi tentang server Anda kepada pengguna yang tidak sah. Untuk melakukan ini, jalankan perintah berikut:

sudo rm /var/www/html/info.php

Anda selalu dapat membuat kembali halaman info.php ini jika Anda perlu mengakses informasinya lagi nanti.

Kesimpulan

Sekarang Anda memiliki LAMP stack yang diinstal, Anda memiliki banyak pilihan untuk apa yang harus dilakukan selanjutnya. Pada dasarnya, Anda telah menginstal platform yang memungkinkan Anda menginstal sebagian besar situs web dan perangkat lunak web di server Anda.

Sebagai langkah selanjutnya, Anda harus memastikan bahwa koneksi ke web server Anda diamankan, dengan melayani mereka melalui HTTPS. Opsi termudah di sini adalah menggunakan Let’s Encrypt untuk mengamankan situs Anda dengan sertifikat TLS / SSL gratis.