Cara Install Nginx, MariaDB dan PHP (LEMP) di Ubuntu 18.04
Install Nginx, MariaDB dan PHP (LEMP) di Ubuntu 18.04. Untuk menggunakan VPS, tentu Anda perlu melakukan instalasi web service yang sesuai dengan aplikasi yang akan Anda onlinekan. Khususnya script dengan basis PHP, biasa menggunakan LAMP (Apache – Mysql/MariaDB – PHP) atau LEMP (Nginx – Mysql/MariDB – PHP). Dan ini perlu Anda install satu persatu bila tidak menggunakan panel seperti cpanel, webuzo, vestacp dan lain sebagainya.
Bagi Anda yang baru saja beralih ke VPS, maka rekomendasi terbaik adalah menggunakan panel. Karena dalam konfigurasi akan lebih mudah, semua paket-paket service diatas sudah menjadi satu dengan panel.
Pada panduan kali ini saya akan membahas cara install nginx, mariaDB dan php (LEMP) di Ubuntu. Sebelum Anda memulai mengikuti panduan ini, pastikan beberapa persyaratan berikut sudah terpenuhi. Agar nantinya pada saat proses instalasi tidak terjadi kegagalan.
- Memiliki akses root
- Sistem Operasi Ubuntu 18:04
Persyaratan utama ialah memiliki akses ke root. Karena tanpa memiliki akses root, sudah pasti tidak bisa menjalankan perintah-perintah seperti pada panduan ini.
Jika saran saya, sebaiknya Anda tidak langsung menggunakan akses root untuk aktivitas rutin, hal tersebut untuk menjaga keamanan VPS. Seperti yang Anda ketahui, root memiliki hak akses yang sangat luas, sehingga ada kemungkinan akan memberikan kerusakan dengan mudah bila terjadi kesalahan dalam mengeksekusi sebuah perintah.
Jadi sebaiknya membuat user baru yang memiliki akses ke root. User ini dapat mengakses aktivitas yang dilakukan root dengan menambahkan awalan sudo di setiap perintah. Dan ini tentu akan lebih aman dibanding root yang tidak memiliki notif tertentu dalam proses eksekusi. Namun bila Anda sudah mahir, maka tidak perlu menggunakan user baru lagi, cukup menggunakan root saja sudah cukup.
Baca Juga : Cara Menambah User Baru di Linux Ubuntu
Ikuti panduan diatas bila Anda ingin membuat user yang memiliki hak akses root.
Cara Install Nginx, MariaDB dan PHP (LEMP) di Ubuntu 18.04
Silakan Anda login terlebih dahulu ke akun root/user menggunakan SSH. Kita akan memulai dari instalasi Web Service Nginx terlebih dahulu.
1. Cara Install Nginx di VPS Ubuntu
Nginx adalah server HTTP dan Proxy dengan kode sumber terbuka yang bisa juga berfungsi sebagai proxy IMAP/POP3.
Update terlebih dahulu package yang ada di server VPS Ubuntu Anda dengan menjalankan perintah berikut.
sudo apt update
Selanjutnya jalankan perintah dibawah untuk memulai proses instalasi web server Nginx.
sudo apt install nginx
Bila Anda mengaktifkan UFW (Uncomplicated Firewal) maka perlu menambahkan HTTP dan HTTPS NGINX pada ufw dengan menjalankan perintah ” sudo ufw allow ‘Nginx HTTP’ “, dan pastikan menambahkan nginx ke ufw berhasil dengan jalankan perintah “sudo ufw status“. Karena pada panduan ini saya belum menggunakan SSL, maka hanya HTTP saja yang ditambahkan ke ufw.
Baca Juga : Cara Konfigurasi Firewall dengan UFW di Ubuntu
Anda dapat menguji apakah server aktif dan bekerja dapat dengan mengakses nama domain atau alamat IP publik di browser web Anda. Nantinya pada browser akan menampilkan seperti screenshot dibawah.
2. Cara Install MariaDB di VPS Ubuntu
Setelah server web Nginx aktif dan bekerja, Anda perlu menginstal sistem database agar dapat menyimpan dan mengelola data untuk situs Anda. MariDB merupakan versi pengembangan terbuka dan mandiri dari MySQL.
Gunakan command dibawah ini untuk memulai proses instalasi MariaDB.
sudo apt install mariadb-server
Saat diminta, konfirmasi penginstalan dengan mengetik Y, lalu tekan ENTER.
Konfigurasi MariaDB
Setelah proses instalasi selesai, Anda perlu melakukan konfigurasi keamanan mariaDB. Jalankan perintah dibawah ini untuk memulainya.
sudo mysql_secure_installation
Saat pertama kali menjalankan perintah tersebut maka akan diminta password, maka cukup Anda tekan ENTER.
Selanjutnya akan diminta memasukan “set root password“, cukup pilih “N” dan Enter. Bila Anda mengisikan password root, maka kemungkinan akan menjadi masalah bila nantinya mariaDB terdapat pembaharuan.
Bagian “Remove anonymous users” pilih “Y” dan Enter.
“Disallow root login remotely“, Pilih “Y” jika tidak mengizinkan untuk akses database jarak jauh. Karena disini untuk penggunaan pribadi, maka saya memilih “N” saja.
Terakhir “Remove test database and access to it?” pilih “Y“.
Pada sistem ubuntu yang menggunakan MariaDB 10.3, root MariaDB akan diatur untuk mengautentikasi menggunakan unix_socket secara default, dan bukan kata sandi. Tentunya hal ini akan memberikan keamanan yang lebih baik dalam banyak kasus, namun juga akan menjadikan masalah saat Anda perlu mengizinkan hak administratif seperti penggunaan phpMyAdmin atau lainnya.
Meskipun Anda dapat melakukan perubahan konfigurasi pada file /etc/mysql/debian.cnf, tetap saja hal tersebut tidak dianjurkan. Alasannya, karena pengaturan tersebut dapat berpotensi rusak saat terdapat pembaharuan mariaDB. Sehingga anjuran utama adalah dengan membuat akun administratif sendiri untuk akses basis data menggunakan kata sandi.
Akun baru yang akan kita buat ini tetap memiliki kemampuan yang sama seperti root, tetapi dikonfigurasi untuk otentikasi kata sandi.
Buka prompt MariaDB dari terminal VPS dengan menjalankan perintah berikut.
sudo mariadb
Lalu jalankan perintah untuk membuat user dan password.
GRANT ALL ON *.* TO 'isikanuser'@'localhost' IDENTIFIED BY 'isikanpassword' WITH GRANT OPTION; FLUSH PRIVILEGES;
isikanuser : ganti username
isikanpassword : ganti password
Setelah selesai, Anda bisa keluar dari prompt MariaDB dengan menjalankan perintah dibawah ini.
exit
Jika ingin melakukan pengecekan status service MariaDB, Anda dapat menjalankan perintah ini.
sudo systemctl status mariadb
Jika status service mariaDB tidak aktif, silakan jalankan perintah berikut “sudo systemctl start mariadb”
Untuk lebih memastikan bahwa akun database yang sebelumnya bekerja dengan baik. Anda dapat menjalankan perintah dibawah
mariadb -u admin -p
Masukan password (password akun user mysql yang telah dibuat). Lalu jalankan perintah mysql seperti “show databases;“
Untuk melakukan pengecekan versi mariaDB bisa Anda jalankan perintah “sudo mysqladmin version“.
3. Install PHP dan Konfigurasi dengan NGINX
Proses selanjutnya adalah melakukan install service PHP sekaligus melakukan konfigurasi agar PHP dan NGINX dapat bekerja dengan baik.
Silakan Anda jalankan perintah dibawah ini untuk memulai instalasi service PHP.
sudo apt install php-fpm php-mysql
Bila terdapat konfirmasi pada saat instalasi, silakan pilih Y dan Enter.
Konfigurasi Nginx
Secara default ketika Anda menggunakan Nginx, maka file yang akan dibaca adalah file yang berada pada folder /var/www/html. Bila Anda memiliki nama domain sendiri maka bisa menambahkan folder sendiri, yang terpenting masih didalam /var/www.
Buat nama direktori menggunakan nama domain dengan menjalankan perintah dibawah. Karena nama domain saja webbaru.com maka commandnya akan seperti screenshot.
sudo mkdir /var/www/nama_domain.com
Berikutnya berikan privilage kepada folder domain yang telah Anda buat dengan menggunakan command dibawah.
sudo chown -R $USER:$USER /var/www/nama_domain.com
Kemudian, buka file konfigurasi baru di sites-available direktori Nginx menggunakan editor pilihan Anda. Di sini, kami akan menggunakan vim/vi :
Jalankan perintah dibawah ini untuk melakukan proses edit menggunakan editor vim/vi.
sudo vim /etc/nginx/sites-available/nama_domain.com
Untuk menambahkan atau edit jalankan beberapa shotcode dibawah :
i : untuk edit atau insert (huruf i)
esc : berhenti dari proses edit
:wq atau :wq! : untuk menyimpan sekaligus keluar
q! : keluar tanpa menyimpan
Pastikan pada bagian fastcgi-php sesuaikan dengan versi PHP Anda. Karena saya menggunakan php 7.2 sehingga info yang tertampil php 7.2 (cek php version : php -v).
server { listen 80; server_name nama_domain.com www.nama_domain.com; root /var/www/nama_domain.com; index index.html index.htm index.php; 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 konfigurasi Anda dengan menautkan ke file konfigurasi dari sites-enabled direktori Nginx. Jalankan perintah coammad dibawah ini.
sudo ln -s /etc/nginx/sites-available/nama_domain.com /etc/nginx/sites-enabled
Uji vhost yang telah Anda buat dengan menjalankan perintah dibawah ini. Bila ada kesalahan, maka akan menampilkan error.
sudo nginx -t
sudo systemctl reload nginx
Jika sudah tidak terdapat error, buat file index.html ataupun index.php untuk menguji bahwa PHP dan nginx sudah berkerja dengan baik. Anda dapat menggunakan vim untuk membuat file baru seperti contoh dibawah.
sudo vim /var/www/nama-domain.com/index.html
Bisa Anda tambahkan File html berikut ini. Ketika Anda akses namadomain.com/index.hmtl akan menampilkan konten file html yang sudah dibuat tersebut
<html> <head> <title>your_domain website</title> </head> <body> <h1>Hello World!</h1> <p>Novri.web.id <strong>Halo Root Directory sesuai</strong>.</p> </body> </html>
Cek juga dengan membuat file php, untuk memastikan bahwa service PHP sudah bekerja dengan baik di nginx.
sudo vim /var/www/nama-domain.com/index.php
<?php phpinfo(); ?>
Jika berhasil, maka ketika diakses pada browser akan menampilkan konten PHP seperti screenshot dibawah.
4. Testing Database MariaDB dari PHP
Langkah yang terakhir adalah melakukan testing koneksi database mariaDB di PHP.
Silakan Anda login ke prompt mariaDB dengan menjalankan perintah berikut.
mariadb -u contoh_user -p
contoh_user gunakan user dan password saat install dan konfigurasi mariaDB sebelumnya.
Buat database baru melalui prompt dengan command dibawah. Saya akan membuat database dengan nama contoh.
CREATE DATABASE contoh;
Lalu gunakan database contoh yang telah dibuat.
USE contoh;
Dan hasilnya akan seperti screenshot.
Anda dapat membuat contoh tabel berikut atau lainnya. Karena tabel di database ini hanya untuk pengecekan saja. Saya akan membuat table dengan nama test.
CREATE TABLE test ( id INT AUTO_INCREMENT, nama VARCHAR (255), PRIMARY KEY (id) );
Isi tabel dengan memasukan data. Anda dapat mencoba menjalankan perintah berikut. Sedangkan untuk data bisa Anda sesuaikan saja.
INSERT INTO test VALUES ('', 'Novri');
Jika ingin melihat data sudah ada atau belum, maka bisa jalankan.
SELECT * FROM test;
Setelah selesai, langsung saja keluar dari prompt sql.
exit
Terakhir buat file PHP dengan nama test dan isikan dengan script dibawah ini untuk proses koneksi ke database yang telah Anda buat.
sudo vim /var/www/nama_domain.com/test.php
Lalu masukan file PHP berikut pada test.php
<?php $user = "user db"; $password = "password db"; $database = "contoh"; $table = "test"; try { $db = new PDO("mysql:host=localhost;dbname=$database", $user, $password); echo "<h2>HELLO</h2><ol>"; foreach($db->query("SELECT nama FROM $table") as $row) { echo "<li>" . $row['nama'] . "</li>"; } echo "</ol>"; } catch (PDOException $e) { print "Error!: " . $e->getMessage() . "<br/>"; die(); } ?>
Simpan file test.php yang telah Anda edit atau insert data.
Kemudian jalankan file test.php melalui browser (nama-domain.com/test.php). JIka koneksi database berhasil maka akan menampilkan data yang ada pada database seperti screenshot.
Demikianlah Cara Install Nginx, MariaDB dan PHP (LEMP) di Ubuntu 18.04. Semoga bermanfaat dan dapat membantu Anda. Jangan lupa untuk shared artikel ini kepada teman, kerabat, saudara atau lainnya. Agar mimin novri.web.id lebih semangat dalam membuat panduan-panduan lain. images by freepick