Cara Install LEMP Stack di VPS Debian

Hai, Sobat Jagoan! LEMP adalah kombinasi perangkat lunak open-source yang umum digunakan untuk menjalankan aplikasi web dinamis, terdiri dari Linux, Nginx, MariaDB, dan PHP. Nama “LEMP” sendiri merupakan akronim dari empat komponen utama tersebut, dengan huruf “E” mewakili Nginx (dibaca “engine-x”) sebagai server web yang bertugas melayani permintaan dari pengguna dan menampilkan halaman web. Sistem operasi Linux menjadi fondasi utama yang menjalankan seluruh komponen ini. Untuk pengelolaan data, LEMP menggunakan MariaDB, yaitu sistem manajemen basis data relasional (RDBMS) yang andal dan open-source. Sementara itu, PHP digunakan sebagai bahasa pemrograman sisi server untuk menangani proses logika dan menghasilkan konten dinamis pada halaman web.

Pada panduan ini, LEMP stack akan diinstal di VPS berbasis Debian, yang merupakan distribusi Linux yang ringan, stabil, dan banyak digunakan untuk server karena dukungan komunitasnya yang luas dan pengelolaan paket yang efisien melalui APT, sehingga sangat cocok sebagai landasan pengembangan aplikasi web dengan stack LEMP.

Prasyarat

  1. Memiliki server Debian dengan akses pengguna non-root yang memiliki akses hak sudo. Sebagai informasi Debian yang digunakan pada artikel ini yaitu Debian 12.
  2. Memiliki domain yang sudah diarahkan ke VPS (opsional). Panduan mengarahkan domain ke VPS bisa diakses pada Cara mengarahkan domain ke vps.

Berikut ini adalah panduan instalasi LEMP di Debian 12 menggunakan MariaDB sebagai sistem manajemen basis data.

Step 1: Buat Koneksi SSH VPS

Pertama, buat koneksi SSH ke VPS kamu melalui terminal. Jika menggunakan sistem operasi Windows, kamu bisa menggunakan PuTTY.

Detail informasi awal layanan kamu bisa diakses pada Informasi Awal Layanan VM.

Step 2: Instal Web Server Nginx

Sebelum mulai instalasi, pastikan sistem kamu menggunakan daftar paket terbaru dengan menjalankan perintah di bawah ini.

				
					sudo apt update
				
			

Setelah sistem diperbarui, pasang web server Nginx yang akan menangani permintaan HTTP dan menampilkan halaman web ke pengguna.

				
					sudo apt install nginx
				
			

Lalu, buka port 80 di firewall yang merupakan port untuk mengizinkan trafik HTTP. Kalau belum instal perintah ufw jalankan perintah dengan urutan:

				
					sudo apt install ufw
sudo ufw allow 'Nginx HTTP'
				
			

Nah, kalau kamu menjalankan perintah ini melalui koneksi SSH supaya tidak di blokir firewall dan koneksi SSH tetap aman saat UFW diaktifkan, jalankan perintah:

				
					sudo ufw allow ssh
				
			

Kemudian aktifkan ufw

				
					sudo ufw enable
				
			

Kemudian, periksa status firewall untuk memastikan aturan sudah diterapkan.

				
					sudo ufw status
				
			

Output yang mungkin kamu dapatkan.

1-ufw status-cara-install-lemp stack-vps-debian

Kamu bisa menguji apakah Nginx berhasil berjalan apabila diakses melalui web browser dengan membuka http://ip-server-kamu. Kalau melihat tampilan seperti di bawah ini, berarti server web Nginx berhasil diinstal dan berjalan baik.

2-welcome-nginx-cara-install-lemp stack-vps-debian

Step 3: Instal MariaDB

Setelah web server berjalan, instal manajemen basis data untuk menyimpan dan mengelola data situs. MariaDB merupakan alternatif dari MySQL yang kompatibel dan ringan. Jalankan perintah berikut untuk menginstalnya.

				
					sudo apt install mariadb-server
				
			

Setelah itu, untuk meningkatkan keamanan database, jalankan perintah konfigurasi keamanan awal:

				
					sudo mysql_secure_installation
				
			

Ikuti instruksi yang muncul untuk:

  • Mengatur password root database (Enter current password for root), tekan Enter (karena belum ada password).
  • ‘Switch to unix_socket authentication?’ ketik n lalu Enter
  • ‘Change the root password?’’ ketik Y lalu Enter. Kemudian tuliskan password dan konfirmasi passwordnya.
  • Tekan Y dan Enter untuk semua pertanyaan selanjutnya (hapus user anonim, nonaktifkan login root jarak jauh, hapus database test, dan muat ulang aturan hak akses).

Untuk mengakses console MariaDB sebagai root, jalankan:

				
					sudo maridb
				
			

Output yang kamu lihat pada prompt:

				
					MariaDB [(none)]>
				
			

Di console, buat database dan user baru.

				
					CREATE DATABASE example_database;
GRANT ALL ON example_database.* TO 'example_user'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
				
			

Jangan lupa ganti example_database, example_user, dan password sesuai kebutuhan kamu.

Ketik exit untuk keluar dari console MariaDB.

				
					exit
				
			

Kemudian login ulang menggunakan user dan password yang dibuat tadi.

				
					mariadb -u example_user -p
				
			

Setelah masuk, periksa database yang bisa diakses.

				
					SHOW DATABASES;
				
			

Output yang ditampilkan:

3-lihat-database-cara-install-lemp stack-vps-debian

Step 4: Instal PHP

Karena LEMP menggunakan PHP sebagai bahasa pemrograman di sisi server, kamu perlu menginstalnya bersama modul pendukung yang diperlukan Nginx untuk memproses skrip PHP. Kamu memerlukan php-fpm dan php-mysql supaya PHP bisa berkomunikasi dengan MariaDB.

				
					sudo apt install php-fpm php-mysql
				
			

Perintah di atas akan menginstal PHP beserta modul php-fpm (fastCGI Processor Manager) dan php-mysql untuk koneksi database.

Step 5: Konfigurasi Nginx untuk Menggunakan PHP Processor

Nginx menggunaka server blocks (mirip dengan virtual host di Apache) untuk mengatur konfigurasi setiap situs secara terpisah. Pada artikel ini, akan menggunakan alamat IP server untuk pengujian lokal. Namun, kalau kamu memiliki domain, kamu bisa menggunakannya.

Secara default, Nginx memiliki satu server block yang aktif dan melayani dokumen dari direktori /var/www/html. Konfigurasi ini hanya cukup untuk satu situs, jadi sulit dikelola kalau ingin menambahkan lebih banyak situs. Oleh karena itu, di artikel ini akan membuat struktur direktori baru untuk menyimpan file website kamu dan tetap membiarkan /var/www/html sebagai default.

Pertama, buat direktori root untuk domain.

				
					sudo mkdir /var/www/your_domain
				
			

Lalu, berikan hak kepemilikan ke user saat ini.

				
					sudo chown -R $USER:$USER /var/www/your_domain
				
			

Kemudian, buka file konfigurasi baru di direktori sites-available:

				
					sudo nano /etc/nginx/sites-available/your_domain
				
			

Isi dengan konfigurasi berikut.

				
					server {
    listen 80;
    listen [::]:80;
    root /var/www/your_domain;
    index index.php index.html index.htm;
    
    server_name your_domain;
    location / {
        try_files $uri $uri/ =404;
    }
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
    }
    location ~ /\.ht {
        deny all;
    }
}
				
			

Catatan: Kalau kamu menggunakan versi PHP yang berbeda (misalnya PHP 7.4 atau 8.1) pastikan bagian fastgci_pass disesuaikan.

Contoh untuk PHP 7.4:

				
					fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
				
			

Untuk melihatnya kamu bisa pergi ke direktori /var/run/php.

				
					cd /var/run/php
ls
				
			

Setelah selesai mengedit, simpan dan tutup file dengan tekan Ctrl+x lalu y dan Enter untuk keluar dari mode editor.

Berikutnya aktifkan, konfigurasi web kamu dengan membuat symbolic link ke ditektori sites-enabled.

				
					sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/
				
			

Dan periksa apakah konfigurasi valid, dengan:

				
					sudo nginx -t
				
			
4-cek-konfigurasi-symbolic link-cara-install-lemp stack-vps-debian

Kalau tidak error, lanjutkan ke langkah untuk merestart server. Dengan begitu, Nginx akan menggunakan konfigurasi baru yang mengarahkan permintaan file.php ke PHP-FPM untuk diproses.

				
					sudo systemctl reload nginx
				
			

Step 6: Periksa Konfigurasi: Buat PHP File

Setelah menyelesaikan konfigurasi LEMP stack, kamu bisa memeriksa apakah Nginx dapat memproses file PHP dengan benar menggunakan PHP-FPM.

Pertama, buat file PHP di direktori root web milik domain kamu.

				
					nano /var/www/your_domain/info.php
				
			

Kemudian masukkan kode berikut, yang akan menampilkan halaman dengan informasi lengkap tentang konfigurasi PHP yang sedang aktif di server kamu.

				
					<?php
phpinfo();
?>
				
			

Buka di web browser url situs kamu, misalnya http://ip-server-kamu/info.php atau http://domainkamu/info.php

Halaman informasi PHP yang akan kamu lihat seperti ini.

5-php info-cara-install-lemp stack-vps-debian

Catatan: Halaman ini memuat informasi sensitif tentang server dan lingkungan PHP-mu, seperti path, modul aktif, dan konfigurasi tertentu. Sangat disarankan untuk menghapus file ini setelah pengujian selesai.

Untuk menghapus, gunakan perintah:

				
					rm /var/www/your_domain/info.php
				
			

Sampai di sini, kamu sudah berhasil mengatur direktori dan konfigurasi server block Nginx, menghubungkan Nginx ke PHP-FPM, dan menguji file .php dan memastikan PHP berjalan dengan baik di server.

Step 7: Periksa Koneksi Database (Opsional)

Kalau kamu ingin menguji apakah PHP dapat terhubung ke MariaDB, kamu bisa membuat tabel uji dan query untuk isinya dari skrip PHP.

Masuklah ke console MariaDB dulu, lalu buat tabel bernama ‘todo_list’ dengan menjalankan ini di console.

				
					use nama_database;

CREATE TABLE todo_list (
      item_id INT AUTO_INCREMENT,
      content VARCHAR(255),
      PRIMARY KEY(item_id)
);
				
			

Kemudian masukkan data ke dalam tabel. Kamu bisa menjalankan query ini beberapa kali untuk memasukkan data ke dalam tabel dengan mengganti valuesnya.

				
					INSERT INTO example_database.todo_list (content) VALUES ("My first important item");
				
			

Untuk mengkonfirmasi bahwa data berhasil disimpan di dalam tabel, jalankan perintah:

				
					SELECT * FROM example_database.todo_list;
				
			

Output:

6-lihat-isi tabel-cara-install-lemp stack-vps-debian

Kalau output kamu serupa dengan hasil di atas, selanjutnya keluar dari console MariaDB.

Sekarang buat skrip PHP yang akan mengkoneksikan query MariaDB tadi dengan konten untuk situs kamu. Buat file PHP baru di direktori root web kamu.

				
					nano /var/www/your_domain/todo_list.php
				
			

Dan salin konten berikut di dalam skrip PHP tersebut.

				
					<?php
$user = "example_user";
$password = "password";
$database = "example_database";
$table = "todo_list";

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();
}
				
			

Gantilah bagian:

$user = “example_user”;

$password = “password”;

$database = “example_database”;

$table = “todo_list”;

dengan infromasi database kamu.

Simpan dan tutup setelah selesai. Dan coba akses url situs kamu di web browser dengan mengakses http://ip-server-kamu/todo_list.php, hasilnya akan seperti ini.

7-tes-koneksi-database-cara-install-lemp stack-vps-debian

Selamat! Kamu telah berhasil menginstal dan mengkonfigurasi stack LEMP di Debian. Stack ini siap digunakan untuk menjalankan aplikasi web berbasis PHP dan MariaDB.

Kalau ada yang masih bikin bingung, jangan ragu hubungi Tim Support Jagoan Hosting via Live Chat atau Open Ticket ya, Sob!

Related Posts
Tutorial Login Ke SSH Secara Otomatis

Kamu ingin melakukan login SSH secara otomatis? Gak perlu bingung karena kamu bisa ikutin tutorial di bawah ini untuk melakukan Read more

Tutorial Cara Mengamankan Akses ke Layanan VPS Anda

Hai, Sob! Tahukah kamu, Mengamankan akses ke VPS kamu sangat penting tak terkecuali untuk akses dari SSH. Wah, gimana tuh Read more

Tutorial Cara Setting Cpanel atau WHM di VPS Kamu

Tahukah kamu, dengan membeli paket VPS SSD dan Ditambah addon cPanel dan WHM  di Jagoan Hosting, secara otomatis kamu akan mendapatkan Read more

Tutorial Cara Pantau monitoring Kinerja VPS anda

Hai, Sob! Buat kamu yang udah kepo sama cara pantau monitoring kinerja VPS kamu, yuk ikutin tutorialnya dibawah ini.Tapi, sebenernya Read more