Tutorial langkah demi langkah ini akan menunjukkan cara menginstal dan mengonfigurasi Nginx untuk mengeksekusi PHP di server Anda menggunakan PHP-FPM.
Nginx + PHP adalah salah satu grup perangkat lunak paling populer yang dapat Anda gunakan untuk membangun situs web Anda. Tutorial langkah demi langkah ini akan menunjukkan cara menginstal dan mengkonfigurasi Nginx untuk mengeksekusi PHP di server Anda menggunakan PHP-FPM.
Nginx adalah kombinasi ideal dengan PHP-FPM. Ini adalah server web stabil yang dikenal karena kinerjanya yang mengesankan dan konsumsi sumber daya yang rendah.
PHP berjalan sebagai layanan yang terisolasi saat Anda menggunakan PHP-FPM. Menggunakan versi PHP ini sebagai penerjemah bahasa berarti permintaan akan diproses melalui soket UNIX. Server Nginx hanya akan menangani permintaan HTTP, sedangkan PHP-FPM menginterpretasikan kode PHP.
1. Menginstal Nginx
Ubuntu / Debian
Karena Nginx tersedia di repositori default Debian dan Ubuntu, menginstalnya dari repositori ini menggunakan sistem pengemasan yang tepat dapat dilakukan.
sudo apt install nginx
CentOS / AlmaLinux / Rocky Linux
Untuk mendapatkan versi Nginx terbaru, pengguna CentOS, AlmaLinux, atau Rocky Linux perlu menginstal repositori EPEL terlebih dahulu.
EPEL (Extra Packages for Enterprise Linux) adalah proyek repositori berbasis komunitas open-source dan gratis dari tim Fedora yang menyediakan paket perangkat lunak tambahan berkualitas tinggi untuk distro Linux berbasis RHEL.
sudo yum install epel-release
Kemudian Anda dapat menginstal server Nginx.
sudo yum install nginx
Fedora
Nginx tersedia di repositori default Fedora dan dapat diinstal langsung menggunakan dnf
pengelola paket.
sudo dnf install nginx
2. Menginstal PHP-FPM
Ubuntu / Debian
Untuk menginstal PHP di Ubuntu atau Debian, jalankan saja perintah berikut:
sudo apt install php-fpm
CentOS
Versi PHP yang tersedia secara default dalam server CentOS sudah usang. Oleh karena itu, kita perlu menginstal repositori paket pihak ketiga untuk mendapatkan PHP 7.
CentOS 7
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum-config-manager --enable remi-php74
sudo yum install php php-fpm
CentOS 8
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-8.rpm
sudo yum-config-manager --enable remi-php74
sudo yum install php php-fpm
3. Konfigurasi NGINX untuk Menjalankan PHP Menggunakan PHP-FPM
Setelah Nginx dan PHP terinstal, kita dapat mengkonfigurasi Nginx untuk mengirim permintaan PHP ke PHP-FPM.
Kita harus membuat file konfigurasi blok server Nginx untuk menjalankan PHP dengan FPM. Setelah itu, Anda dapat membuat VirtualHost baru sesuai kebutuhan Anda, mengaktifkan VirtualHost baru.
sudo vim /etc/nginx/sites-available/example.com
Ganti example.com
dengan domain atau alamat IP situs Anda, dan root
direktif dengan direktori root situs Anda.
server {
listen 80;
root /var/www/html;
index index.php index.html index.htm;
server_name example.com;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
}
Simpan perubahan Anda ke file konfigurasi dan buat tautan ke direktori yang diaktifkan situs.
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com
Pastikan nama file soket PHP (dalam kasus kami php7.4-fpm.sock
) ditentukan dalam fastcgi_pass
direktif sudah benar.
ls -l /var/run/php/
total 4
-rw-r--r-- 1 root root 5 Dec 1 17:43 php7.4-fpm.pid
srw-rw---- 1 www-data www-data 0 Dec 1 17:43 php7.4-fpm.sock
lrwxrwxrwx 1 root root 30 Dec 1 17:43 php-fpm.sock -> /etc/alternatives/php-fpm.sock
Jika namanya berbeda dengan php7.4-fpm.sock
, ganti saja di blok server yang ditunjukkan di atas dengan yang sekarang dari server Anda.
Kemudian restart layanan Nginx untuk memuat ulang perubahan.
sudo systemctl restart nginx.service
4. Menguji Penyiapan
Buat file PHP uji untuk memverifikasi bahwa PHP-FPM berfungsi dan terintegrasi dengan Nginx. Di Blok Server di atas, situs kami dilayani dari /var/www/html
, jadi kami akan membuat file uji di sana:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
Terakhir, akses info.php
dari browser web, menggunakan domain situs atau alamat IP server Anda. Anda akan melihat halaman konfigurasi PHP:
Kesimpulan
Selamat! Anda telah menyiapkan Nginx untuk menangani permintaan PHP melalui PHP-FPM.
Ada beberapa langkah selanjutnya yang bisa Anda ambil dari sini. Misalnya, Anda harus memastikan bahwa koneksi ke server Anda aman. Tapi bagaimana melakukannya?
Ikuti tutorial langkah demi langkah kami untuk mendapatkan sertifikat SSL Let's Encrypt gratis untuk server Anda.