Kebutuhan instalasi LAMP Stack pada Linux Server sudah tidak asing lagi ya, baik menggunakan OS Ubuntu, Debian, CentOs, dsb. Karena suatu aplikasi website berbasis PHP dan menggunakan database harus memiliki LAMP Stack ini terlebih dahulu. Nah kali ini saya akan share instalasi LAMP Stack pada OS Debian Server 10, sebelumnya sudah pernah saya share untuk OS Server yang lain :
- Install LAMP Stack pada Ubuntu Server 20.04 LTS
- Install Linux, Nginx, MySQL, PHP (LEMP) Stack pada CentOs 7
Install Web Server - Apache
-
Langkah pertama silakan update paket terlebih dahulu pada VPS/VM debian server :
sudo apt update
-
Berikutnya silakan install apache terlebih dahulu :
sudo apt update sudo apt install apache2
Lalu start service apache dan enable agar start secara otomatis setelah vm reboot. Pastikan statusnya sudah running :
sudo systemctl enable apache2
sudo systemctl start apache2
sudo systemctl status apache2
Untuk memastikan apakah service apache sudah running, Anda bisa akses IP Public server/vm Anda pada browser.
Untuk mengetahui IP Public vm, bisa menjalankan perintah :
curl ifconfig.co
Install Database Server - MariaDB
- Selanjutnya silakan install service mariadb/mysql nya, secara default repositori debian server 10 ini sudah menyediakannya dengan versi 10.3. Jadi Anda tinggal menjalankan perintah berikut :
sudo apt install mariadb-server
Start dan enable service mariadb dan pastikan sudah berstatus running :
Direkomendasikan untuk menjalankan perintah berikut karena untuk meningkatkan level keamanan database, akses user, dsb.
sudo mysql_secure_installation
Scipt tersebut akan menampilkan beberapa prompt, prompt pertama Anda akan ditanya apakah sudah memiliki password database (mysql/mariadb) sebelumnya, jika tidak silakan ketikkan 'no' (tanpa tanda petik).
Prompt berikutnya silakan isikan password root database Anda, ingat isikan password yang kompleks ya terdiri dari kombinasi huruf besar, kecil, angka, tanda baca.
Contoh : (Kw4dVjT$wf)
Adapun untuk prompt selanjutnya silakan pilih opsi 'Yes'. Hal ini akan menghapus user anonymouse, database test, menon-aktifkan remote login menggunakan user root seperti berikut ini :
Untuk login ke database consolenya bisa menggunakan beberapa perintah seperti :
sudo mysql atau
sudo mariadb
sudo mysql -u root -p
Note : Flag -p digunakan untuk input password user
Buatlah contoh satu database dan usernya sebagai bukti nantinya bahwa koneksi database dengan PHP berjalan dengan normal. Selain itu, login akses menggunakan user biasa disarankan daripada menggunakan user root secara langsung.
create database contoh_database;
grant all on contoh_database.* to 'contoh_user'@'localhost' identified by 'pasSw0rduSer' with grant option;
flush privileges;
Install PHP
- Langkah selanjutnya, install PHP. Untuk repositori PHP juga sudah disediakan secara default oleh debian server 11 ini dengan versi PHP 7.3, Anda tinggal menjalankan perintah :
sudo apt install php libapache2-mod-php php-mysql sudo apt-get install php7.3-{bcmath,bz2,intl,gd,mbstring,mysql,zip}
Berikut versi PHP nya :
Nah sampai saat ini service LAMP Stacknya sudah terinstall dengan baik. Selanjutnya kita akan membuat virtualhost secara sederhana untuk akses websitenya :
Buatlah direktori website terlebih dahulu :
sudo mkdir /var/www/html/test-web
Lalu jalankan perintah berikut untuk membuat file konfigurasi virtualhostnya :
sudo vim /etc/apache2/sites-available/test.conf
Paste baris konfigurasi berikut :
<VirtualHost *:80>
ServerName test.kenalinux.id
ServerAlias www.test.kenalinux.id
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/test-web
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Note :
- ServerName : Masukkan nama domain/subdomain Anda (contoh : test.kenalinux.id)
- ServerAlias : Masukkan nama alias domain/subdomain Anda (contoh : www.test.kenalinux.id)
- DocumentRoot : Letak direktori utama website Anda
Pastikan konfigurasi virtualhost tidak ada yang error :
sudo apache2ctl configtest
Lalu aktifkan file virtualhost tersebut :
sudo a2ensite test.conf
Reload service apache :
sudo systemctl reload apache2
Disable akses default virtualhost :
sudo a2dissite 000-default
Reload service apache :
sudo systemctl reload apache2
Uji Coba / Akses
Kemudian buatlah satu file php untuk menginformasikan versi PHP dan module PHP apa saja yang terinstall pada vm :
sudo vim /var/www/html/test-web/info.php
Isikan baris berikut :
<?php
phpinfo();
?>
Simpan file tersebut dan akses pada browser Anda :
Lalu hapus file tersebut karena termasuk informasi yang sensitif.
sudo rm /var/www/html/test-web/info.php
- Setelah itu silakan coba test PHP ke koneksi database Anda, hal ini bersifat opsional saja ya. Hal ini hanya memastikan bahwa PHP ke koneksi database normal. Masuk ke console database dan buatlah tabel untuk data dummy kurang lebih seperti berikut ini :
CREATE TABLE contoh_database.catatan ( item_id INT AUTO_INCREMENT, content VARCHAR(255), PRIMARY KEY(item_id) );
INSERT INTO contoh_database.catatan (content) VALUES ("Tulisan Blog Pertama Kenalinux ID");
Tambahkan baris data jika mau dan tampilkan datanya :
SELECT * FROM contoh_database.catatan;
Buatlah file php yang berisi script yang menampilkan isi table yang sudah dibuat sebelumnya :
sudo vim /var/www/html/test-web/catatan.php
<?php
$user = "contoh_user";
$password = "pasSw0rduSer";
$database = "contoh_database";
$table = "catatan";
try {
$db = new PDO("mysql:host=localhost;dbname=$database", $user, $password);
echo "<h2>TODO</h2><ol>";
foreach($db->query("SELECT content FROM $table") as $row) {
echo "<li>" . $row['content'] . "</li>";
}
echo "</ol>";
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
Untuk mengubah ownership direktori website Anda dan mengubah permission default file (644) dan permission default direktori (755) secara rekursif bisa menggunakan perintah :
sudo find /var/www/html/test-web -type f -exec chmod 644 {} \;
sudo find /var/www/html/test-web -type d -exec chmod 755 {} \;
- Langkah yang terakhir, silakan akses alamat website Anda jika berhasil maka akan tampil data dummy yang telah dibuat sebelumnya, kurang lebih seperti berikut ini :
Agar website Anda memiliki proteksi SSL bisa install SSL nya terlebih dahulu ya, SSL ini bisa menggunakan yang free ataupun yang berbayar. Untuk menggunakan SSL yang free (Let's Encrypt) bisa install certbot terlebih dahulu :
sudo apt-get install python-certbot-apache
sudo apt install snapd
sudo snap install core
sudo snap refresh core
sudo snap install --classic certbot
sudo certbot --apache -d test.kenalinux.id
Note : Flag '-d" digunakan untuk menunjukkan nama domain atau subdomain. Anda bisa menggunakan alamat website Anda contoh : test.kenalinux.id
Pilih opsi Redirect (nomor 2) agar website Anda redirect ke https secara otomatis, jika proses instalasinya sukses akan tampil seperti berikut :
Lalu silakan coba akses kembali, nantinya akan muncul icon "gembok" yang menandakan bahwa website Anda sudah menggunakan SSL.
Kesimpulan
Itulah cara instalasi LAMP Stack pada OS Debian Server 10 yang merupakan pondasi aplikasi website aplikasi bisa berjalan di Cloud. Sebagai tambahan saya juga cantumkan untuk instalasi SSL Free pada web servernya.
Semoga bisa bermanfaat.