Ramdani.web.id – LEMP dan LNMP adalah dua istilah yang digunakan untuk merujuk pada tumpukan perangkat lunak yang sering digunakan untuk mengembangkan dan menjalankan aplikasi web di lingkungan server.
- LEMP merupakan akronim dari Linux, Nginx, MySQL, dan PHP. Ini adalah kombinasi dari sistem operasi Linux, server web Nginx, sistem manajemen basis data MySQL, dan bahasa pemrograman PHP.
- Linux: Merupakan sistem operasi yang menjadi dasar dari tumpukan ini. Linux digunakan sebagai sistem operasi server yang stabil dan aman pada LEMP Stack
- Nginx: Merupakan server web yang dirancang untuk menangani lalu lintas web yang tinggi. Nginx terkenal karena kinerja yang cepat, efisien, dan skalabilitasnya pada LEMP stack.
- MySQL: Merupakan sistem manajemen basis data relasional yang populer. MySQL digunakan untuk menyimpan dan mengelola data aplikasi web pada LEMP stack
- PHP: Merupakan bahasa pemrograman server-side yang digunakan untuk mengembangkan aplikasi web dinamis. PHP berperan dalam memproses permintaan dari server web dan menghasilkan tampilan dinamis untuk pengguna pada LEMP Stack
LEMP Kombinasi ini sering digunakan dalam pengembangan aplikasi web yang mengandalkan basis data MySQL dan menggunakan bahasa pemrograman PHP sebagai penghubung antara basis data dan server web.
- LNMP merupakan kebalikan nya dengan perbedaan penggunaan server web. LNMP adalah akronim dari Linux, Nginx, MySQL, dan PHP-FPM.
- Linux: Sistem operasi yang digunakan tetap sama.
- Nginx: Server web yang juga digunakan.
- MySQL: Sistem manajemen basis data yang sama.
- PHP-FPM: Merupakan alternatif dari PHP yang digunakan dalam LNMP . PHP-FPM (FastCGI Process Manager) adalah implementasi PHP dengan arsitektur yang berbeda yang dirancang untuk kinerja yang lebih baik dalam lingkungan server web.
LNMP mengganti penggunaan PHP dengan PHP-FPM untuk mengoptimalkan kinerja dan skalabilitas aplikasi web.
Kedua tumpukan ini merupakan pilihan populer untuk mengembangkan dan menjalankan aplikasi web, terutama dalam skala besar, karena kinerja tinggi, keandalan, dan kemampuan skalabilitasnya.
Tahapan installasi LNMP/LEMP stack silakan ikuti langkah – langkah berikut ini.

Sebelum melakukan installasi LEMP dapat dipastikan anda telah mempunyai sebuah layanan VPS yang siap digunakan untuk install LEMP. Jika anda belum mempunyai layanan VPS kami sarankan anda bisa order di layanan VPS termurah indonesia di IDCloudHost.
1. Install Nginx
Lakukan update dan upgrade pada repository ubuntu di VPS/VM yang anda milki dengan command line berikut. Dapat dipastikan anda telah masuk sebagai super user jia menggunakan user biasa anda bisa input perintah sudo di awal nya.
1 |
apt update && apt upgrade -y |
Selanjutnya anda install nginx dengan command line berikut:
1 |
apt install nginx -y |
Jika sudah selesai anda bisa cek status nginx nya bisa dipastikan aktif running input command line berikut:
1 |
systemctl status nginx |
Pada tahap ini installasi Nginx telah selesai selanjutnya anda bisa install paket lain nya.
2. Install PHP-FPM 7.4
Melakukan installasi php-fpm versi 7.4 disini sekaligus dengan beberapa extension pendukung nya silakan anda bisa ikuti command line berikut:
Install repository nya terlebih dahulu.
1 2 |
apt install software-properties-common -y add-apt-repository ppa:ondrej/php |
1 |
apt install php7.4-fpm php7.4-common php7.4-mysql php7.4-xml php7.4-xmlrpc php7.4-curl php7.4-gd php7.4-imagick php7.4-cli php7.4-dev php7.4-imap php7.4-mbstring php7.4-soap php7.4-zip php7.4-bcmath -y |
Setelah installasi nya selesai silakan anda bisa cek status php nya dengan command line berikut:
1 |
systemctl status php7.4-fpm |
Jika status nya aktif anda telah berhasil install php-fpm versi 7.4 nya.
3. Install Mariadb
Selanjutnya install mariadb sebagai database server untuk mariadb disini sama saja seperti mysql. Silakan anda bisa ikuti command line berikut:
1 |
apt install mariadb-server -y |
Dapat dipastikan mariadb telah aktif jika installasi telah selesai untuk cek dengan command line berikut:
1 |
systemctl status mariadb |
Berikutnya melakukan konfigurasi kemanan akses database dengan command line berikut:
1 |
mysql_secure_installation |
Setelah perintah diatas di jalankan anda akan melakukan konfigurasi memberi password pada default akses ke database server anda, silakan anda bisa ikuti saja perintah nya.
4. Membuat Virtual Host/Server Block
Pada tahap ini kita akan membuat server block atau virtual host, yang pertama kita tentukan terlebih dahulu untuk lokasi directory pada penyimpanan data website, disini kita menyimpan document directory nya di dalam home/namadomain.
1 2 3 4 5 6 7 8 9 10 |
#membuat folder didalam folder home mkdir /home/namadomain #masuk ke dalam home cd /home #ubah owner folder tersebut chown -R www-data:www-data namadomain #ubah permission folder chmod 755 namadomain #membuat server block vim /etc/nginx/sites-available/namadomain.conf |
Tekan (i) untuk input kedalam text editor vim, selanjutnya copy paster scrtipy konfigurasi berikut, sesuaikan dengan nama domain dan rooting tempat data website anda.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
server { ## Your website name goes here. server_name namadomain.tld www.namadomain.tld; ## Your only path reference. root /var/www/wordpress; ## This should be in your http block and if it is, it's not needed here. index index.php; location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } location / { # This is cool because no php is touched for static content. # include the "?$args" part so non-default permalinks doesn't break when using query string try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini include fastcgi_params; fastcgi_intercept_errors on; include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.4-fpm.sock; #The following parameter can be also included in fastcgi_params file fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ { expires max; log_not_found off; } } |
Teakn ESC di keyboard selanjutnya ketik wq: kemudian ENTER di keyboard. Selanjutnya membuat symbolic dengan command berikut:
1 |
ln -s /etc/nginx/sites-available/namadomain.conf /etc/nginx/sites-enabled/ |
1 2 |
#cek konfigurasi apakah sudah sesuai nginx -t |
Jika hasil dari test konfig nginx ok “nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful” artinya tidak ada error dan lanjutkan.
5. Upload Data Website ke VPS
Pada panduan ini tidak menginstall website baru melainkan migrasikan data website yang sudah ada sebelumnya telah di backup dan di simpan di local komputer. Untuk upload data website ke VPS bisa menggunakan filezila atau scp di terminal. Disi kita menggunakan scp melalui terminal Linux atau Mac.
1 2 |
#seuikan path tempat berada pada file diabwah ini EX: sudo scp /User/username/Downlaods/mybackup.zip root@103.xxx.xxx:/home/namafolderdata |
Jika komputer anda menggunakan OS Windows 10/11 bisa ikuti command scp berikut:
1 |
scp C:/Users/username/Desktop/mybackup.zip root@103.xxx.xxx:/home/namafolder |
Setelah upload selesai silakan anda bisa extact data nya dengan command berikut:
1 2 3 4 |
#install unzip apt install unzip #extarxt file unzip mybackup.zip |
5. Membuat Database dan Konfigurasi
Selanjutnya kita akan membuat database dan import database dari backup kita.
1 2 3 4 5 6 7 |
#buat database CREATE DATABASE namadatabase; #buat user CREATE USER 'namauser'@'localhost' IDENTIFIED BY 'password'; #tambahkan akses user ke database GRANT ALL PRIVILEGES ON namadatabase.* TO 'namauser'@'localhost'; FLUSH PRIVILEGES; |
Import database dari data backup yang telah di upload data di extract
1 2 3 4 |
#pilih database nya use namadatabase; #import database source /home/namadomain/backupdb.sql |
Jika import telah selesai anda bisa exit dari database management. Masuk ke wp-config.php lalu sesuaikan dengan nama database, user dan password nya.
1 |
vim /home/namadomain/wp-config.php |
Pada baris konfigurasi database silakan anda bisa sesuaikan.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
// ** Database settings - You can get this info from your web host ** // /** The name of the database for WordPress */ define( 'DB_NAME', 'namadatabase' ); /** Database username */ define( 'DB_USER', 'namauser' ); /** Database password */ define( 'DB_PASSWORD', 'password' ); /** Database hostname */ define( 'DB_HOST', 'localhost' ); /** Database charset to use in creating database tables. */ define( 'DB_CHARSET', 'utf8' ); /** The database collate type. Don't change this if in doubt. */ define( 'DB_COLLATE', '' ); |
Pada tahap ini sudah selesai anda bisa pointing nama domain anda ke IP public VPS.
6. Install Certbot Untuk SSL Let’s Encrypt
Pada tahap install ini optional sebagai tambahan agar website kita mempunyai SSL aktif. Install certbot untuk nginx dengan command line berikut:
1 |
apt install certbot python3-certbot-nginx |
Tunggu proses installasi nya hingga selesai dapat di pastikan berjalan dengan baik.
Selanjutnya install SSL pada domain nya.
1 |
certbot --nginx -d namadomain.tld -d www.namadomain.tld |
Pada tahap ini untuk install SSl sudah selesai karena auto generate, selanjutnya membuat SSL ini auto renew bisa jalankan perintah berikut.
1 2 3 4 |
#cek status cerbot systemctl status certbot.timer #perintah renew certbot renew --dry-run |
Terima kasih semoga bermanfaat. xD