Install LEMP (Nginx, MySQL, PHP) Stack di Ubuntu

Last updated on

LEMP Stack merupakan kumpulan software yang bisa digunakan untuk halaman website dinamik dan juga web aplikasi.

LEMP merupakan singkatan dari Linux Os, dengan Nginx sebagai web servernya, basis data nya menggunakan MySQL atau MariaDB, dan diperuntukkan untuk jenis-jenis web yang menggunakan bahasa program PHP.

Jadi dengan menginstall LEMP Stack ini kita bisa menjalankan web-web sejenis WordPress dan juga Laravel, ini merupakan CMS dan juga web framework yang menggunakan PHP sebagai bahasa program nya.

Sebelum kamu mengikuti tutorial ini, sebaiknya untuk melakukan penginstallan melalui user non-root, yang mempunyai akses sudo. Untuk melakukan setup akun yang seperti ini, kamu bisa ikuti tutorialnya di halaman Langkah pertama setup server di Ubuntu.

Jika kamu sudah mengikuti tutorial diatas, berikutnya kamu bisa mengikuti langkah-langkah dibawah ini.

Step 1 - Install Nginx

Untuk web server kita akan menggunakan Nginx,

Nginx merupakan open source web server yang sudah digunakan oleh 400 juta website dan 67% dari 10 ribu top web dunia.

Untuk menginstall Nginx kamu bisa menggunakan perintah berikut.

sudo apt update
sudo apt install nginx

Selanjutnya kamu bisa mengetest untuk mengetahui Nginx sudah up dan running dengan mengakses ip server di web browser.

Untuk mengetahui ip server dari server ubuntu kamu bisa menjalankan command berikut.

curl ifconfig.co

Lalu akan muncul alamat ip publik dari server kamu dan selanjutnya buka ip tersebut di web browser.

# buka di web browser
http://ipserver

Maka tampilannya akan seperti ini.

welcome-to-nginx

Step 2 - Install MySQL

Sekarang server kamu sudah terinstall Nginx web server, selanjutnya halaman website dinamis biasanya membutuhkan database sebagai basis data nya.

dan sekarang kita akan menginstall MySQL sebagai database management system untuk server kita.

Untuk menginstall MySQL kamu bisa menjalankan command berikut.

sudo apt install mysql-server

Sekarang MySQL database software sudah terinstall, tapi konfigurasi belum selesai.

Untuk memperkuat keamanan, kita perlu mensetting ulang settingan default dari MySQL. Kamu harus menjalankan perintah berikut.

sudo mysql_secure_installation

Ketika kamu menjalankan perintah diatas, pertama kali kamu akan disuruh untuk memilih tipe dari VALIDATE PASSWORD.

VALIDATE PASSWORD PLUGIN nantinya akan menilai kadar kekuatan password yang akan kamu input.

Pilih 0 untuk password tipe LOW, dan 1 untuk tipe MEDIUM, dan 2 untuk tipe STRONG.

Setelah enter kamu akan diminta untuk memasukkan password untuk root.

Please set the password for root here.

New password:

Re-enter new password:

Selanjutnya ikuti seluruh pertanyaan sisa dengan jawaban y untuk Yes agar keamanan database kamu optimal.

Step 3 - Install PHP

Setelah menginstall Nginx sebagai web server dan juga MySQL sebagai database management system, selanjutnya kita perlu menginstall PHP untuk memproses dinamik konten.

Di Nginx tidak terdapat PHP processing manager seperti web server lainnya.

Untuk itu kita perlu ekstensi tambahan bernama php-fpm dimana ini merupakan singkatan dari "fastCGI process manager".

Dan juga kita akan menginstall ekstensi lainnya bernama php-mysql agar bisa berkomunikasi antara PHP dengan database dari MySQL.

Kita akan menginstall keduanya dengan command berikut.

sudo apt install php-fpm php-mysql

Step 4 - Config Nginx

Setelah menginstall PHP, selanjutnya kita harus melalukan konfigurasi tambahan di virtual host Nginx agar web server bisa berkomunikasi dengan PHP.

Caranya dengan mengedit virtual host dengan bantuan editor bernama nano. Ketikkan perintah berikut.

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

Cari bagian ini.

# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;

Lalu tambahkan index.php diantaranya, sehingga akan menjadi seperti ini.

index index.php index.html index.htm index.nginx-debian.html;

Berikutnya cari bagian ini.

        # pass PHP scripts to FastCGI server
        #
        #location ~ \.php$ {
        #       include snippets/fastcgi-php.conf;
        #
        #       # With php-fpm (or other unix sockets):
        #       fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
        #       # With php-cgi (or other tcp sockets):
        #       fastcgi_pass 127.0.0.1:9000;
        #}

Edit menjadi seperti ini.

        # pass PHP scripts to FastCGI server
        #
        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
        #
                # With php-fpm (or other unix sockets):
                fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
        #       # With php-cgi (or other tcp sockets):
        #       fastcgi_pass 127.0.0.1:9000;
        }

Jika sudah selesai, pada editor nano untuk menyimpan nya tekan tombol Ctrl+x di keyboard lalu ketik Y dan enter.

Sesuaikan versi fastcgi_pass diatas dengan versi php yang terinstall di server kamu. Caranya dengan mengecek versi PHP dengan perintah php -v.

Karena yang terinstall di server saya adalah versi php7.2 maka yang saya pasang pada fastcgi_pass nya adalah php7.2-fpm.sock.

Ketik perintah berikut untuk memastikan tidak ada masalah dengan virtual host yang sudah kita edit.

sudo nginx -t

Jika outputnya seperti dibawah ini, maka Nginx vhost yang diedit tadi akan berjalan sempurna.

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Langkah akhir adalah reload Nginx dengan perintah berikut.

sudo systemctl reload nginx

Step 5 - Lakukan Test

Nah, sampai di point ini semua yang dibutuhkan sudah terinstall, dari Nginx, MySQL dan juga PHP. Dan juga kita sudah melakukan konfigurasi pada virtual host Nginx.

Selanjutnya kita bisa lakukan test dengan membuat file php yang berisi script untuk menampilkan php info.

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

Lalu input script dibawah ini.

<?php
phpinfo();

Jika sudah tekan Ctrl+x lalu pilih Y dan enter untuk menyimpannya.

Lalu buka url berikut di browser kamu.

http://ipserver/info.php

Jangan lupa ganti ipserver dengan ip publik server kamu.

Jika berhasil maka tampilan di browser akan seperti ini.

tampilan php info di browser

Kamu bisa hapus kembali file test tadi dengan command berikut.

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

Sampai disini artinya kamu sudah menyelesaikan semua tahapan dalam menginstall LEMP Stack di Server ubuntu.

Sekian, semoga bermanfaat. Jangan lupa share jika artikel ini bermanfaat!