Cara Menjalankan PHP Dengan Versi Yang Berbeda Di NGINX Ubuntu 20.04


Tutorial kali ini menyambung dari tutorial sebelumnya tentang Cara Membuat Virtual Host Menggunakan NGINX di Ubuntu. Pastikan teman-teman sudah mengikuti tutorial dari artikel tersebut untuk melanjutkan tahap ini.

Tambah Repository dan install PHP 5 dan PHP 7

Lakukan perintah dibawah untuk menambahkan repository PHP lalu install versi php 5.6 dan php 7.3.

sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php5.6 php5.6-fpm -y
sudo apt install php7.3 php7.3-fpm -y

Apabila proses instalasi berhasil. Lakukan pengecekan apakah php sudah terinstall dengan menggunakan perintah seperti berikut.

php5.6 -v
php7.3 -v

Bila PHP berhasil terinstall maka outputnya kira-kira seperti ini.

PHP 5.6.40-57+ubuntu20.04.1+deb.sury.org+1 (cli)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies

Dan yang ini untuk php7.3 nya.

PHP 7.3.33-1+ubuntu20.04.1+deb.sury.org+1 (cli) (built: Nov 19 2021 06:25:05) ( NTS )                                   Copyright (c) 1997-2018 The PHP Group                                                                                   Zend Engine v3.3.33, Copyright (c) 1998-2018 Zend Technologies                                                              with Zend OPcache v7.3.33-1+ubuntu20.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies 

Lalu dilanjutkan dengan mengaktifkan php fpm pada setiap versi dengan perintah seperti berikut.

sudo systemctl enable php5.6-fpm.service
sudo systemctl enable php7.3-fpm.service

sudo /etc/init.d/php5.6-fpm start
sudo /etc/init.d/php7.3-fpm start

Modifikasi File Konfigurasi Nginx

Berikutnya lakukan modifikasi file config Nginx yang pernah dibuat pada artikel sebelumnya. Sebelum melakukan modifikasi file config Nginx, cek terlebih dahulu file .sock yang dibutuhkan Nginx untuk mengakses service PHP dengan menjalankan perintah ini.

cat /etc/php/5.6/fpm/pool.d/www.conf | grep 'listen ='
cat /etc/php/7.3/fpm/pool.d/www.conf | grep 'listen ='

perintah diatas akan menghasilkan output seperti ini.

listen = /run/php/php5.6-fpm.sock
listen = /run/php/php7.3-fpm.sock

PATH /run/php/php5.6-fpm.sock dan /run/php/php7.3-fpm.sock akan digunakan untuk keperluan file konfigurasi Nginx. File .sock ini yang akan membedakan versi PHP pada setiap konfigurasi nginx php5.belajar.nginx dan php7.belajar.nginx.

Berikutnya lakukan perubahan pada file config Nginx php5.belajar.nginx dengan perintah seperti berikut.

sudo nano /etc/nginx/sites-available/php5.belajar.nginx

Sebelumnya seperti ini.

server {
	listen 80;
	listen [::]:80;
	root /var/www/php5.belajar.nginx/;
	index index.html index.htm;
	server_name php5.belajar.nginx;
	location / {
		try_files $uri $uri/ =404;
	}
}

Lalu ubah menjadi seperti ini.

server {
	listen 80;
	listen [::]:80;
	root /var/www/php5.belajar.nginx/;
	index index.html index.htm index.php;
	server_name php5.belajar.nginx;
	        location / {
	                try_files $uri $uri/ =404;
	        }

		location ~ \.php$ {
	                fastcgi_pass unix:/run/php/php5.6-fpm.sock;
	                include fastcgi.conf;
	                fastcgi_index   index.php;
	        }
}

Pada konfigurasi di atas, bisa dilihat pada script yang dihighlight. Pada bagian index, tambahkan index.php karena nanti file yang akan dibaca oleh PHP adalah file dengan ekstensi .php. Lalu pada block location terdapat fastcgi_pass unix:/run/php/php5.6-fpm.sock;. Baris ini yang akan membedakan konfigurasi nginx ini menggunakan php versi 5.6

Lalu lakukan hal yang sama pada file config untuk yang php7.3

sudo nano /etc/nginx/sites-available/php7.belajar.nginx
server {
	listen 80;
	listen [::]:80;
	root /var/www/php7.belajar.nginx/;
	index index.html index.htm index.php;
	server_name php7.belajar.nginx;
	        location / {
	                try_files $uri $uri/ =404;
	        }

		location ~ \.php$ {
	                fastcgi_pass unix:/run/php/php7.3-fpm.sock;
	                include fastcgi.conf;
	                fastcgi_index   index.php;
	        }
}

Selanjutnya lakukan pengecekan apakah konfigurasi nginx yang sudah kita modifikasi tadi sudah oke atau tidak ada kesalahan dengan menggunakan perintah ini.

sudo nginx -t

Apabila berjalan dengan baik, output yg muncul kurang lebih akan seperti ini.

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Maka bisa dilanjutkan dengan me-restart nginx dengan perintah ini.

service nginx restart

Menghapus file HTML dan menggantinya dengan file .PHP

Tahap selanjutnya kita akan membuat file .php untuk melihat apakah versi PHP yang kita inginkan sudah sesuai dengan konfigurasi Nginx. Pertama-tama kita hapus dulu file index.html yang pernah kita buat di artikel sebelumnya dengan perintah berikut.

sudo rm /var/www/php5.belajar.nginx/index.html
sudo rm /var/www/php7.belajar.nginx/index.html

Lalu buat file index.php dengan perintah seperti berikut

echo '<?php phpinfo();?>' > /var/www/php5.belajar.nginx/index.php
echo '<?php phpinfo();?>' > /var/www/php7.belajar.nginx/index.php

Sedikit penjelasan, phpinfo digunakan untuk melihat info-info tentang versi php yang sedang berjalan pada Webserver tersebut.

Maka saat dijalankan, pada domain php5.belajar.nginx akan berubah seperti dibawah ini.

Lalu untuk php7.belajar.nginx akan seperti ini.

Sudah terlihat pada kedua domain tersebut dijalankan menggunakan versi PHP yang berbeda menggunakan metode Virtual Host. Demikian tutorial kali ini. Terima kasih sudah mampir.

Leave a Reply

Your email address will not be published. Required fields are marked *