Cara Install Nginx, MariaDB dan PHP (LEMP) di Ubuntu 20.04
Cara Install Nginx, MariaDB dan PHP (LEMP) di Ubuntu 20.04 – Secara umum, bila Anda melakukan development website dinamis dengan bahasa pemrograman PHP maka perlu mengaktifkan tiga service berikut pada server, Nginx/Apache (Web Server), MariaDB/Mysql (database) dan PHP. Sebenarnya masih banyak lagi webserver ataupun jenis service database yang ada.
Jika Anda menggunakan panel seperti cpanel, webuzo atau lainnya tetap akan memerlukan service diatas. Namun proses instalasi sudah otomatis saat Anda melakukan instalasi panel. Namun jika Anda menggunakan panel, akan terdapat service lainnya yang juga terinstall.
Nah karena Anda hanya membutuhkan web service, database dan php, maka bisa instalasi service tersebut tanpa menggunakan panel. Dalam panduan ini, kita Anda melakukan instalasi dengan detail berikut ini.
- Sistem Operasi : Ubuntu 20.04 (fresh)
- Nginx 1.18.0
- MariaDB 10.3.25
- PHP 8.0.2
Dalam hal ini pastikan Anda memiliki akses root. Dan untuk saran utama adalah dengan membuat user baru yang memiliki akses root. Tidak bagus bila untuk aktivitas rutin menggunakan root, hal tersebut karena root memiliki akses yang sangat luas. Sehingga akan mudah untuk terjadi kesalahan ataupun human error.
Baca Juga >> Cara Membuat User Baru di Ubuntu
Anda dapat menggunakan panduan diatas untuk membuat user baru yang memiliki akses root. Bila Anda sudah jelas mahir dalam pengelolaan VPS/server maka menggunakan user root tidak masalah.
Cara Install Nginx, MariaDB dan PHP (LEMP) di Ubuntu 20.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 20.04
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 menggunakan firewall UFW maka silakan tambahkan service Nginx. Ikuti panduan dibawah ini untuik konfigurasi UFW.
Baca Juga : Cara Konfigurasi UFW di Ubuntu
Setelah selesai instalasi, uji web server Nginx 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 20.04
Setelah Nginx berhasil di install, selanjutnya melakukan instalasi database mariaDB. MariaDB merupakan pengembangan dari MySQL. Sehingga Anda masih tetap bisa menggunakan mysql meskipun menggunakan web service mariaDB.
Jalankan perintah dibawah ini untuk mulai instalasi MariaDB.
sudo apt install mariadb-server
Bila terdapat konfirmasi pada saat instalasi, tekan 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.
Terakhir “Remove test database and access to it?” pilih “Y“.
Bila Anda berencana menggunakan aplikasi management database seperti phpMyadmin maka sebaiknya membuat user database baru, untuk memberikan hak akses full dalam pengelolaan database. Karena bila Anda menggunakan user root, nantinya akan bermasalah ketika melakukan update mariaDB. Hal tersebut karena pada sistem ubuntu yang menggunakan MariaDB 10.3, root MariaDB akan diatur untuk mengautentikasi menggunakan unix_socket secara default, dan bukan kata sandi.
Baca Juga : Cara Install phpMyadmin di VPS Ubuntu
Cara membuat user baru untuk hak akses database sangat mudah. Jalankan perintah dibawah ini.
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
3. Install PHP 8 dan Konfigurasi dengan NGINX
Untuk menginstal versi PHP terbaru, Anda perlu menggunakan repositori Ondrej PPA . Repositori ini berisi beberapa versi PHP dan ekstensi PHP.
Tetapi pertama-tama, mari perbarui paket sistem Ubuntu Anda dan instal beberapa dependensi dibawah ini.
sudo apt update sudo apt upgrade sudo apt install lsb-release ca-certificates apt-transport-https software-properties-common -y
Selanjutnya, tambahkan Ondrej PPA .
Saat diminta, tekan ENTER untuk melanjutkan dengan menambahkan repositori.
Instal PHP 8.0 dengan Nginx di Ubuntu 20.04
Jika Anda menggunakan PHP 8.0 dengan Nginx, maka rekomendasi terbaik adalah dengan install PHP-FPM untuk memproses file PHP.
Jalankan perintah dibawah ini untuk instalasi PHP dan PHP-FPM.
sudo apt install php8.0-fpm
Agar terhubung dengan database mysql, Anda perlu instalasi extention mysql. Jalankan perintah dibawah ini.
sudo apt install php8.0-mysql
Bila ingin instalasi extention lainnya silakan Anda cari. Jangan lupa lakukan pengecekan status PHP 8 dan PFP-FPM dengan perintah dibawah ini.
sudo systemctl status php8.0-fpm
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.
Pada panduan ini saya ingin melakukan managed domain pada folder /var/www/public_html sehingga Anda perlu membuat folder/direktori tersebut dengan menjalankan perintah dibawah ini.
sudo mkdir /var/www/public_html
sudo mkdir /var/www/public_html/namadomain.com
Kemudian, buka file konfigurasi baru di Server Block (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
server { listen 80; server_name nama_domain.com www.nama_domain.com; root /var/www/public_html/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:/run/php/php8.0-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 server block yang telah Anda buat dengan menjalankan perintah dibawah ini. Bila ada kesalahan, maka akan menampilkan error.
sudo nginx -t
sudo systemctl reload nginx
sudo systemctl restart nginx
Selanjutnya Anda bisa membuat file index.php untuk proses pengecekan apakah service PHP sudah bekerja dengan baik.
Jalankan perintah dibawah dan isikan file php dibawah.
sudo vim /var/www/public_html/nama-domain.com/index.php
<?php phpinfo(); ?>
Jika berhasil maka akan menampilkan informasi mengenai PHP server Anda.
4. Testing Database MariaDB dari PHP 8
Langkah terakhir adalah melakukan pengecekan database menggunakan PHP.
Silakan Anda login ke prompt mariaDB dengan menjalankan perintah berikut.
sudo mariadb
Buat database baru dan gunakan melalui prompt dengan command dibawah. Saya akan membuat database dengan nama novri.
CREATE DATABASE nama-database;
Lalu gunakan database contoh yang telah dibuat.
USE nama-database;
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 ('1', 'Novri');
Jika ingin melihat data sudah ada atau belum, maka bisa jalankan.
SELECT * FROM test;
Setelah selesai, langsung saja keluar dari prompt sql.
exit
Buat privileges database untuk user database yang telah Anda buat sebelumnya. Bila belum membuat user database, silakan jalankan perintah membuat user database dahulu.
CREATE USER 'nama-user'@'localhost' IDENTIFIED BY 'isi-password';
Jika sudah membuat user database, baru buatlah privileges database untuk user tersebut.
GRANT ALL PRIVILEGES ON nama-database.* TO 'nama-user'@'localhost' IDENTIFIED BY 'isi-password';
FLUSH PRIVILEGES;
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/public_html/nama-domain.com/index.php
<?php $user = "user-database"; $password = "password-database"; $database = "nama-database"; $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 index.php yang telah Anda edit atau insert data.
Kemudian jalankan file test.php melalui browser (nama-domain.com/index.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 20.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
bagaimana jika mau pindah antar vps dan ingin import database mas
Untuk pindah antar server bisa langsung download data dari server baru (SSH), gunakan wget atau scp atau rsync. Sedangkan untuk import database bisa dari phpMyadmin ataupung langsung dari SSH.