Cara Instal Linux, Nginx, MySQL, & PHP (LEMP Stack) di Ubuntu 22.04

LEMP Stack (Linux, Nginx, MySQL dan PHP) adalah lingkungan hosting web populer untuk situs web yang dikembangkan dalam bahasa pemrograman PHP. Linux adalah sistem operasinya, Nginx adalah server web yang populer dan MySQL adalah sistem manajemen basis data relasional yang digunakan untuk menyimpan data.

Tutorial ini akan membantu Anda menginstal Nginx, MySQL, dan PHP (LEMP Stack) di sistem Linux Ubuntu 22.04 Jammy Jellyfish.

Sebelum Kita Mulai

Dengan asumsi bahwa Anda menjalankan sistem Linux Ubuntu 22.04 dengan sudo (atau root) akses istimewa.

Akses sistem Anda dan buka terminal. Akan lebih baik untuk memperbarui cache manajer paket dan memutakhirkan paket yang saat ini diinstal. Untuk melakukan ini, jalankan:

sudo apt update && sudo apt upgrade

Mari kita mulai instalasi stack LEMP (Linux, Nginx, MySQL, dan PHP) di Ubuntu 22.04 Jammy Jellyfish Linux system.

Langkah 1 – Menginstal NGINX

Pertama, kami akan menginstal server web Nginx Terbaru di sistem kami. Gunakan perintah berikut untuk menambahkan PPA untuk menginstal versi Nginx terbaru di Ubuntu 22.04 Linux.

AndaGunakan perintah berikut untuk menginstal server web Nginx.

sudo apt install nginx

Ini akan menginstal server web Nginx dan memulai service.

Sekarang, Anda harus mengizinkan port server web di firewall. Untuk mengizinkan port 80 dan 443 di firewall UFW, jalankan perintah berikut.

sudo ufw allow 80/tcp Sudo ufw allow 43/tcp

Buka browser web di sistem Anda dan ketik IP server di bilah alamat. Anda akan mendapatkan halaman server Nginx default

Langkah 2 – Menginstal PHP

Pertama, Anda perlu memutuskan versi PHP yang akan diinstal pada sistem Anda. Anda juga dapat menginstal beberapa versi PHP pada satu sistem. Saat ini repositori berisi PHP 5.6, PHP 7.1, 7.2, 7.3, 7.4 dan PHP 8.0, 8.1. Instruksi di bawah ini akan menginstal PHP 8.1. Silakan ubah versi sesuai kebutuhan Anda.

Ondrej/php ppa berisi semua versi PHP untuk sistem Ubuntu. Jadi tambahkan repositori ini di sistem Anda dengan perintah di bawah ini:

sudo add-apt-repository ppa:ondrej/php

Sekarang perbarui cache apt dan instal PHP 8.1.

sudo apt update sudo apt install php8.1

Ini akan menginstal PHP pada sistem Ubuntu Anda bersama dengan beberapa ekstensi PHP yang berguna.

Langkah 3 — Instal dan Konfigurasi PHP-FPM

PHP-FPM (FastCGI Process Manager) adalah implementasi PHP FastCGI alternatif dengan beberapa fitur tambahan. Server web Nginx memerlukan php-fpm untuk memproses skrip PHP.

Untuk menginstal PHP-FPM, jalankan perintah berikut berdasarkan versi PHP yang diinstal:

sudo apt install php8.1-fpm

Setelah instalasi selesai , periksa status layanan:

sudo systemctl status php8.1-fpm
● php8.1-fpm.service - Manajer Proses FastCGI PHP 8.1 Loaded: dimuat (/lib /systemd/system/php8.1-fpm.service; diaktifkan; preset vendor: diaktifkan) Aktif: aktif (berjalan) sejak Kamis 2022-04-07 06:26:55 UTC; 11 menit yang lalu Dokumen: man:php-fpm8.1(8) Proses: 108650 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/8.1 /fpm/pool.d/www.conf 81 (code=exited, status=0/SUCCESS) PID Utama: 108647 (php-fpm8.1) Status: "Proses aktif: 0, idle: 2, Permintaan: 2, lambat : 0, Traffic: 0req/sec" Tugas: 3 (batas: 1034) Memori: 10.7M CPU: 88ms CGroup: /system.slice/php8.1-fpm.service 108647 "php-fpm: master process (/ etc/php/8.1/fpm/php-fpm.conf) 108648 "php-fpm: pool www 108649 "php-fpm: pool www Apr 07 06:26:55 ubuntu2204 systemd[1]: Memulai PHP 8.1 FastCGI Process Manager... Apr 07 06:26:55 ubuntu2204 systemd[1]: Memulai PHP 8.1 FastCGI Process Manager.

Pada Langkah 6, kita akan mengkonfigurasi virtual host Nginx dengan PHP-FPM untuk melayani aplikasi PHP.

Step 4 – Menginstal MySQL

Repositori default Ubuntu berisi MySQL 8.0. Yang dapat langsung diinstal menggunakan manajer paket. Untuk menginstal versi server MySQL yang tersedia, jalankan perintah berikut ng command.

sudo apt-get install mysql-server

Setelah instalasi selesai, Anda dapat mengamankan server MySQL dengan menjalankan perintah berikut.

sudo mysql_secure_installation

Ini akan menanyakan untuk beberapa pertanyaan untuk mengamankan server MySQL.
Tekan `y` untuk mengaktifkan plugin validasi kata sandi. Ini akan memungkinkan Anda untuk menetapkan kebijakan sandi yang ketat untuk akun pengguna.

VALIDATE PASSWORD COMPONENT dapat digunakan untuk menguji sandi dan meningkatkan keamanan. Ini memeriksa kekuatan kata sandi dan memungkinkan pengguna untuk mengatur hanya kata sandi yang cukup aman. Apakah Anda ingin mengatur komponen VALIDATE PASSWORD? Tekan y|Y untuk Ya, tombol lain untuk Tidak: y ]praPilih tingkat kerumitan kata sandi. Baca semua 3 opsi dan pilih salah satu. Untuk server produksi, kami menyarankan untuk memilih kebijakan KUAT.
LOW Length >= 8 SEDANG Panjang >= 8, numerik, huruf besar campuran, dan karakter khusus KUAT Panjang >= 8, angka, huruf besar campuran, karakter khusus, dan kamus file Silakan masukkan 0 = RENDAH, 1 = SEDANG dan 2 = KUAT: 1 ]masukkan kata sandi baru dan masukkan kembali. Pastikan sesuai dengan tingkat kerumitan seperti yang dijelaskan di atas.
Password baru: ************* Masukkan kembali kata sandi baru: *********** ** ]tekan `y` untuk melanjutkan dengan kata sandi yang diberikan.
Apakah Anda ingin melanjutkan dengan kata sandi yang diberikan?(Tekan y|Y untuk Ya, tombol lain untuk Tidak): y

Remove default anonymous users dari server MySQL:

Hapus pengguna anonim? (Tekan y|Y untuk Ya, tombol lain untuk Tidak): y

Disable root login dari sistem jarak jauh

Larang login root dari jarak jauh? (Tekan y|Y untuk Ya, tombol lain untuk Tidak): y

Remove formulir database pengujian MySQL dibuat secara default selama instalasi.

Hapus database pengujian dan akses ke sana? (Tekan y|Y untuk Ya, tombol lain untuk Tidak): y ]praMuat ulang semua hak istimewa untuk segera menerapkan perubahan di atas.
Muat ulang tabel hak istimewa sekarang? (Tekan y|Y untuk Ya, tombol lain untuk Tidak): y

Anda telah mengamankan server MySQL di tumpukan LAMP pada sistem Linux Ubuntu 22.04.

Ingat bahwa kata sandi yang ditetapkan di atas untuk akun root hanya digunakan untuk pengguna jarak jauh. Untuk masuk dari sistem yang sama, ketik saja mysql di terminal.

sudo mysql
Selamat datang di monitor MySQL. Perintah diakhiri dengan ; atau g. ID koneksi MySQL Anda adalah 14 Versi server: 8.0.28-0ubuntu4 (Ubuntu) Hak Cipta (c) 2000, 2022, Oracle dan/atau afiliasinya. Oracle adalah merek dagang terdaftar dari Oracle Corporation dan/atau afiliasinya. Nama lain mungkin merupakan merek dagang dari pemiliknya masing-masing. Ketik `bantuan;` atau `h` untuk bantuan. Ketik `c` untuk menghapus pernyataan input saat ini. mysql>

Type `keluar` untuk keluar dari shell MySQL dan kembali ke terminal sistem.

Langkah 5 – Menginstal Paket Tambahan

Anda mungkin juga perlu menginstal modul seperti MySQL dan ekstensi lain untuk PHP berdasarkan persyaratan aplikasi. Gunakan perintah berikut untuk menemukan ekstensi PHP kami yang tersedia.

sudo apt search php8.1-*

Perintah di atas akan mencantumkan semua modul PHP7 yang tersedia untuk instalasi, Mari kita mulai instalasi modules.

sudo apt install php8.1-mysql php8.1-curl php8.1-xml

Anda mungkin juga perlu menginstal ekstensi PHP lain yang diperlukan pada sistem Anda.

Langkah 6 — Konfigurasi Nginx VirtualHost

Terakhir, lakukan konfigurasi virtual Nginx tuan rumah. Untuk contoh ini, kita sedang mengedit file konfigurasi default.

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

and buat perubahan seperti di bawah ini.

server { listen 80; root /var/www/example.com; indeks indeks.php; nama_server contoh.com www.contoh.com; lokasi / { try_files $uri $uri/ =404; } lokasi ~ .php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.1-fpm.sock; } }

Pada file konfigurasi di atas, cari lokasi ~ bagian .php$. Yang diperlukan untuk melayani skrip PHP melalui server Nginx.

Anda harus melakukan perubahan yang sama di semua VirtualHost yang dikonfigurasi.

Anda telah berhasil menyelesaikan instalasi Nginx, MySQL, dan PHP pada sistem Linux Ubuntu 22.04. Untuk memverifikasi integrasi PHP dengan Nginx, buat skrip PHP (contoh: info.php) di root dokumen situs web dan tulis content.

Referensi tecadmin.com