Cara Install PHP Multi Versi Dengan Nginx Pada Ubuntu

Posted by

Ada beberapa alasan mengapa kita harus install PHP multi versi dalam sebuah web server, misal kita memiliki aplikasi A yang dibangun dengan menggunakan PHP 7.2, aplikasi B dibangun dengan PHP 7.3, dan aplikasi C dibangun dengan PHP 7.4. Maka kita harus instal beberapa versi PHP dalam sebuah web server nginx.

Poin penting untuk menerapkan hal ini yaitu, dibutuhkan konfigurasi virtual host pada nginx, jadi pastikan teman-teman memiliki akses root terhadap web server untuk melakukan perubahan file virtual host pada nginx

Berikut ini langkah-langkah instalasi multi versi PHP pada nginx di Ubuntu

Note : Pastikan nginx sudah terinstall pada server Ubuntu, jika belum, silakan install dengan perintah apt-get install nginx -y

Install Multi Versi PHP

1. Secara default, PHP pada repository bawaan Ubuntu baru sampai versi 7.2 saja, apabila ingin install PHP diatas versi tersebut, harus menambahkan repository external

add-apt-repository ppa:ondrej/php -y
apt-get update

Note : Apabila ketika menjalankan perintah add-apt-repository muncul pesan “Command Not Found“, silakan lihat referensi berikut : Mengatasi add-apt-repository command not found pada Ubuntu dan Debian

2. Selanjutnya jalankan perintah berikut untuk install PHP 7.2, karena menggunakan nginx, install juga PHP 7.2 FPM

apt-get install php7.2 php7.2-fpm php7.2-mbstring php7.2-curl php7.2-mysql -y

3. Install juga PHP 7.3

apt-get install php7.3 php7.3-fpm php7.3-mbstring php7.3-curl php7.3-mysql -y

4. Install juga PHP 7.4

apt-get install php7.4 php7.4-fpm php7.4-mbstring php7.4-curl php7.4-mysql -y

Baca Juga : Mengatasi Error “Perl: Warning: Setting locale failed” pada Ubuntu

Penggunaan PHP Multi Versi pada Nginx

Untuk menggunakan PHP multi versi, kita bisa gunakan virtual host yang ada pada nginx. Untuk lokasi file virtual host nginx ubuntu biasanya ada di directory /etc/nginx/sites-enabled/

edit file virtual host, misal /etc/nginx/sites-enabled/nama-site

Note : nama-site silakan ubah sesuai dengan nama virtual host yang ada pada web server nginx masing-masing

Kemudian cari baris seperti berikut

fastcgi_pass unix:/var/run/php/php7.X-fpm.sock;

Jika ingin menggunakan PHP 7.2, silakan sesuaikan pada bagian php7.x-fpm.sock menjadi seperti berikut

Menggunakan PHP 7.2

fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;

Menggunakan PHP 7.3

fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;

Menggunakan PHP 7.4

fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;

Jika sudah disesuaikan, silakan restart service nginx dan php-fpm nya

service nginx restart
service php7.2-fpm restart
service php7.3-fpm restart
service php7.4-fpm restart

Test Konfigurasi

Untuk test konfigurasi, kebetulan saya sudah membuat virtual host dengan nama host masing-masing seperti berikut

  • website-a.rizkypratama.id (PHP 7.2) – root directory (/var/www/website-a)
  • website-b.rizkypratama.id (PHP 7.3) – root directory (/var/www/website-b)
  • website-c.rizkypratama.id (PHP 7.4) – root directory (/var/www/website-c)

Buat sebuah file phpinfo.php di masing-masing root directory tersebut untuk memastikan sudah menggunakan versi PHP yang dimaksud

echo "<?php phpinfo(); ?>" > /var/www/website-a/phpinfo.php
echo "<?php phpinfo(); ?>" > /var/www/website-b/phpinfo.php
echo "<?php phpinfo(); ?>" > /var/www/website-c/phpinfo.php

Test akses menggunakan browser ke masing-masing nama website tersebut

website-a menggunakan PHP 7.2

 

website-b menggunakan PHP 7.3

 

website-c menggunakan PHP 7.4

Jika sudah sesuai, silakan hapus file phpinfo.php tersebut untuk mencegah orang lain mendapatkan informasi tentang server teman-teman. Dan selanjutnya silakan teman-teman lanjut untuk develop aplikasi website sesuai dengan versi PHP yang digunakan

Cukup mudah bukan?

Mungkin cukup sekian, semoga bermanfaat

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.