Cara Install Linux,Nginx,MySQL,PHP (LEMP stack) di Ubuntu 18.04
LEMP Stack adalah kumpuplan software yang bisa digunakan untuk melayani dynamic web page dan aplikasi web. Merupakan singkatan dari Linux Operating System, dengan Nginx (Engine-x) Webserver, database storage (MySQL) dan Pemroses web dynamic dari PHP. Pada tulisan kali ini kita akan install LEMP stack di Ubuntu 18.04.
Prerequisites
Sebelum memulai install LEMP stack, kita memerlukan user non root dengan sudo privileges. Bisa menggunakan command berikut:
1 2 |
# add user dminor # user mod -aG sudo dminor |
Install Nginx Web Server
1 2 |
sudo apt update sudo apt install nginx |
Jika ufw running, aktifkan profile nginx full agar bisa diakses HTTPS di kemudian hari
1 2 |
sudo ufw allow 'Nginx Full' sudo ufw delete allow 'Nginx HTTP' |
Cek apakah Nginx sudah bisa di akses
1 |
http://server_domain_or_ip |

Install MySQL
1 2 |
sudo apt install mysql-server sudo mysql_secure_installation |
Pilih Y untuk yes pada saat pemilihan validate password plugin, agar menggunakan password root saat login, dan pilih level password, gunakan password yang strong 2 atau 1
Cek metode authentifikasi pada MySQL user account
1 2 |
sudo mysql SELECT user,authentication_string,plugin,host FROM mysql.user; |
Rubah plugin auth_socket ke mysql_native_password dan set password
1 2 3 4 |
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; FLUSH PRIVILEGES; SELECT user,authentication_string,plugin,host FROM mysql.user; exit; |
Setelah proses konfigurasi di atas, untuk login ke mysql gunakan password mysql untuk login
1 |
mysql -u root -p |
Install PHP dan setting Nginx Untuk Menjalankan PHP
1 |
sudo add-apt-repository universe |
Install php-fpm modeul dengan beberapa helper package, php-mysql agar bisa komunikasi dengan back end database mysql.
1 |
sudo apt install php-fpm php-mysql |
Sampai disini LEMP Stack sudah siap digunakan. Tetapi kita perlu melakukan sedikit konfigurasi agar Nginx menggunakan PHP untuk dynamic content. Hal ini bisa dilakukan di sever block jika di apache adalah virtual hosts. Konfigurasi server blok ada di direktori /etc/nginx/site-available/ . Sebagai contoh jika kita ingin membuat domain example.com kita bisa menyimpan konfigurasi server blok dengan cara:
1 |
sudo nano /etc/nginx/sites-available/example.com |
Dengan konfigurasi kurang lebih seperti berikut:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
server { listen 80; root /var/www/html; index index.php index.html index.htm index.nginx-debian.html; server_name example.com; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; } location ~ /\.ht { deny all; } } |
Selanjutnya aktifkan server block dengan membuat symbolic link /etc/nginx/site-available/ ke /etc/nginx/site-enabled/
1 |
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/ |
Pastikan juga untuk mendisable konfigurasi default /site-enabled/
1 |
sudo unlink /etc/nginx/sites-enabled/default |
Test konfigurasi Nginx apakah terdapat error
1 |
sudo nginx -t |
Reload Nginx
1 |
sudo systemctl reload nginx |
Test PHP
1 |
sudo nano /var/www/html/info.php |
isi file info.php dengan script berikut
1 2 |
<?php phpinfo(); |
Buka di browser
1 |
http://domain_ip_server/info.php |
Seharusnya akan muncul php info kurang lebih seperti ini

Sampai disini konfigurasi sudah selesai. Kita bisa melengkapi dengan SSL Lets Encrypt dan install phpmyadmin di tutorial selanjutnya.
Pingback: Cara Install dan Mengamankan PHPMyAdmin Nginx di Ubuntu 18.04 - Ragilt.Net