Cara Install Linux, Nginx, MySQL, PHP (LEMP stack) di Ubuntu 18.04


Fika Ridaul Maulayya
Software Engineer | Content Creator | Founder & Author di SantriKoding.com

Cara Install Linux, Nginx, MySQL, PHP (LEMP stack) di Ubuntu 18.04 - Halo teman-teman semuanya, pada kesempatan kali ini kita semua akan belajar bagaimana cara mempersiapkan server baru untuk menjalankan sebuah website.

Pada artikel kali ini kita akan belajar bagaimana cara install Nginx, MySQL dan juga PHP. Langsung saja kita mulai mulai dari menginstall Web Server Nginx.

Langkah 1 - Menginstal Server Web Nginx

Pada artikel kali ini kita akan belajar dengan menggunakan Web Server Nginx atau biasanya disebut Engine-X, Web Server Nginx banyak sekali digunakan oleh perusahaan-perusahaan dan startup untuk memanajemen server mereka.

Sebelum menginstall Nginx, silahkan jalankan perintah dibawah ini untuk memperbarui paket-paket pada Ubuntu

sudo apt update

Install Nginx

sudo apt install nginx

Setelah installasi selesai, ada yang perlu kita ketahui bersama, bahwa Nginx akan otomatis berjalan setelah installasi selesai.

Jika teman-teman menjalankan firewall ufw. Kita juga harus mendaftarkan Nginx ke firewall ufw tersebut, jadi prosedurnya sangat mudah sekali.

Silahkan jalankan perintah di bawah ini :

sudo ufw allow 'Nginx HTTP'

Setelah berhasil, kita bisa melihat perubahannya dengan mengetikkan perintah :

sudo ufw status

Output perintah diatas akan menunjukkan bahwa HTTP diizinkan, kurang lebih hasilnya seperti berikut ini :

Output
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
Nginx HTTP                 ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
Nginx HTTP (v6)            ALLOW       Anywhere (v6)

Dengan menambahkan aturan firewall baru, sekarang teman-teman bisa menguji apakah Web Server Nginx kita sudah berjalan. Untuk melihatnya silahkan ketik alamat domain atau alamat IP Publik di web browser.

http://server_domain_or_IP

Jika berhasil, teman-teman akan melihat kurang lebih tampilannya seperti berikut ini :


Langkah 2 - Menginstal MySQL

Setelah kita berhasil menginstall Web Server Nginx, pada tahap ini kita akan belajar bagaimana cara menginstall MySQL di Ubuntu atau di Server kita.

Jalankan Perintah di bawah ini untuk menginstall MySQL :

sudo apt install mysql-server

Setelah installasi berhasil, kita sekarang sudah memiliki MySQL di Server kita, akan teteapi konfigurasinya belum lengkap.

Untuk mengamankan instalasi, MySQL dilengkapi dengan skrip yang akan menanyakan apakah kita ingin memodifikasi beberapa default yang tidak aman.

Sekarang jalankan perintah di bawah ini untuk membuat keamanan pada installasi MySQL kita :

sudo mysql_secure_installation

Dari perintah di atas, kita akan mendapatkan pertanyaan apakah kita ingin mengkonfigurasi VALIDATE PASSWORD PLUGIN.

Silahkan teman-teman jawab dengan menekan Y untuk menyetujui. Setelah itu kita akan dimintai lagi untuk memilih tingkatan keamanan kata sandi.

Disini kita diberikan 3 pilihan, kurang lebih seperti berikut ini :

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary                  file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1

Disini silahkan teman-teman pilih angka 1 saja dan ENTER untuk memilih level medium.

Ingat! jika kita menggunakan angka 2 untuk level terkuat, maka kita akan menerima kesalahan saat mencoba mengatur kata sandi yang tidak mengandung angka, huruf besar dan kecil, dan karakter khusus.

Selanjutnya, kita akan diminta untuk mengirim dan mengonfirmasi kata sandi root:

Please set the password for root here.

New password:

Re-enter new password:

Untuk sisa pertanyaan, kita tinggal menekan Y dan ENTER tombol di setiap prompt. Ini akan menghapus beberapa pengguna anonim dan database pengujian.

Selanjutnya kita akan mencoba merubah kata sani MySQL kita, silahkan jalankan perintah dibawah ini :

sudo mysql

Setelah berhasil masuk ke MySQL, silahkan jalankan perintah berikut ini :

mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;

Maka kurang lebih hasilnya seprti berikut ini :

Output
+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             |                                           | auth_socket           | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

Bisa kita lihat dari hasil diatas, kita tidak memiliki default password untuk root dari MySQL kita. Dan kita masih menggunakan plugin auth_socket yang mana nanti kita akan ubah pluginnya menggunakan mysql_native_password.

Silahkan konfigurasi akun root untuk mengautentikasi dengan kata sandi, jalankan perintah ALTER USER . Pastikan untuk mengubah password atau kata sandi yang kita inginkan:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

CATATAN! : Silahkan ganti password dengan kata sandi yang kita inginkan.

Setelah berhasil, silahkan kita jalankan perintah berikut ini untuk memberi tahu server untuk restart ulang tabel dan menerapkan perubahan baru :

mysql> FLUSH PRIVILEGES;

Setelah itu, coba kita jalankan perintah dibawah ini untuk melihat perubahannya :

mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;

Maka kurang lebih hasilnya seperti berikut ini :

Output
+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             | *3636DACC8616D997782ADD0839F92C1571D6D78F | mysql_native_password | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

Sekarang bisa kita lihat, dari hasil output diatas kita sudah berhasil menambahkan password dan merubah pluginnya yang asalnya auth_socket menjadi mysql_native_password.

Silahkan kita bisa keluar dari MySQL dengan cara menjalankan perintah dibawah ini :

mysql> exit

Sebelum lanjut ke tahap selanjutnya, sekarang kita coba masuk ke MySQL kita dengan password yang sudah dikta buat diatas, apakah sudah benar-benar berjalan sesuai dengan keinginan kita. Silahkan jalankan perintah di bawah ini :

mysql -u root -p

Silahkan masukkan password MySQL teman-teman dan tekan ENTER, jika berhasil teman-teman akan masuk di prompt dari MySQL.

Langkah 3 - Instalasi PHP dan Konfigurasi Nginx

Dari langkah-langkah di atas, kita sudah berhasil menginstall sebuah Web Server untuk menjalankan website kita nanti dan MySQL untuk menyimpan data website kita. Namun masih ada yang belum, yaitu membuat sesuatu konten yang dinamis dan disinilah PHP berperan.

Pada tahap kali ini kita semua akan belajar menginstall PHP di server kita. Dan sini nanti kita akan menggunakan PHP-FPM, yang merupakan kependekan dari “fastCGI proses manager”.

Sebelum kita menginstall PHP, kita akan membuat sebuah repository terlebih dahulu, silahkan jalankan perintah dibawah ini :

sudo add-apt-repository universe

Setelah kita berhasil menambahkan repository baru, sekarang kita bisa menginstall PHP dengan cara menjalankan perintah dibawah ini :

sudo apt install php-fpm php-mysql

Sekarang kita sudah berhasil menginstall semua komponen LEMP yang diperlukan, akan tetapi disini kita juga masih perlu membuat beberapa perubahan konfigurasi untuk memberi tahu NGINX untuk menggunakan PHP sebagai pemrosesan konten dinamis.

Disini kita akan belajaar membuat block server baru di Nginx, sialhkan jalankan perintah dibawah ini untuk membuat block server baru di Nginx :

sudo nano /etc/nginx/sites-available/example.com

CATATAN! : example.com bisa teman-teman ganti dengan nama domain atau IP Publik.

Silahkan masukkan kode block server dibawah ini ke dalam file yang barusan kita buat :

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

Dari block server Nginx diatas, berikut penjelasannya lengkapnya :

  • listen- Menentukan port yang akan digunakan Nginx. Dalam hal ini, ia akan menggunakan pada port 80, port default untuk HTTP.

  • root - Menentukan adalah tempat file website disimpan.

  • index - Mengkonfigurasi Nginx untuk memprioritaskan file yang dinamai index.php ketika file indeks diminta, jika tersedia.

  • server_name - Menentukan blok server mana yang harus digunakan untuk permintaan yang diberikan ke server kita. Arahkan arahan ini ke nama domain server kita atau alamat IP publik.

  • location / - Blok lokasi pertama termasuk try_files arahan, yang memeriksa keberadaan file yang cocok dengan permintaan URI. Jika Nginx tidak dapat menemukan file yang sesuai, itu akan mengembalikan kesalahan 404.

  • location ~ \.php$ - Blok lokasi ini menangani pemrosesan PHP yang sebenarnya dengan mengarahkan Nginx ke fastcgi-php.conf file konfigurasi dan php7.2-fpm.sock file tersebut, yang menyatakan soket apa yang dikaitkan php-fpm.

  • location ~ /\.ht - Blok lokasi terakhir berkaitan dengan .htaccess file, yang tidak diproses Nginx. Dengan menambahkan deny all, jika ada .htaccess file di dalam root dokumen, mereka tidak akan ditampilkan kepada pengunjung.

Setelah menambahkan block server, simpan dan tutup file. Aktifkan blok server baru kita dengan membuat symlink dari file konfigurasi blok server baru kita (dalam /etc/nginx/sites-available/direktori) ke /etc/nginx/sites-enabled/direktori:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

Uji file konfigurasi baru kita, untuk mengetahui apakah kesalahan sintaks atau tidak yaitu dengan mengetikkan:

sudo nginx -t

Jika semuanya tidak ada masalah, kita bisa memuat ulang atau restart Nginx kita dengan cara mengetikkan perintah berikut ini :

sudo systemctl reload nginx

Langkah 4 - Membuat File PHP untuk Menguji Konfigurasi

Sekarang kita akan menguji dan memvalidasi apakah Nginx kita sudah benar-benar bisa memproses file PHP. sekarang silahkan jalankan perintah dibawah ini untuk membuat file baru dengan nama info.php :

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

Silahkan masukkan kode di bawah ini dan silahkan kalian simpan file info.php dengan cara menekan CTRL + X dan klik Y :

<?php
phpinfo();

Sekarang, kita dapat melihat halaman ini di browser web dengan mengunjungi nama domain server kita atau alamat IP publik diikuti oleh /info.php:

http://your_server_domain_or_IP/info.php

Sekarang kita akan melihat halaman web yang dibuat oleh PHP dengan informasi tentang server kita, kurang lebih seperti berikut ini :


Sampai disini pembahasan tentang Installasi Nginx, MySQL, PHP atau LEMP stack di Ubuntu 18.04, jika ada pertanyaan silahkan bisa bertanya melalui kolom komentar di bawah.

sumber : https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-ubuntu-18-04


Fika Ridaul Maulayya
Software Engineer | Content Creator | Founder & Author di SantriKoding.com

Jika Anda menyukai konten kami, silakan pertimbangkan untuk membeli kopi untuk kami.
Terima kasih atas dukungan Anda!

Buy me a coffeeBuy me a coffee
KEBIJAKAN KOMENTAR

Saat memberikan komenatar silahkan memberikan informasi lengkap tentang error, seperti: screenshot, link kode, dll. Baca aturan komentar kami

KOMENTAR