Di Linux berbagai versi PHP bisa dijalankan secara bersamaan, disini kita akan membahas cara untuk menjalankan 2 versi yang berbeda di Ubuntu 20.04. Kedua versi ini bisa dijalankan secara bersamaan dengan menggunakan PHP FPM sesuai dengan versi masing-masing.
Update System
sudo apt update; sudo apt upgrade -y
Install Dependency
Install dependency agar proses instalasi berjalan dengan lancar
sudo apt install software-properties-common apt-transport-https lsb-release ca-certificates wget -y
dengan cara dibawah ini bisa menggunakan 2 atau lebih versi PHP di server yang sama. Bila anda hanya butuh salah satu versi, tinggal install versi tersebut.
1. Install PHP 7.4
Install PHP 7.4 menggunakan apt
package manager
sudo apt install php7.4 php7.4-cli php7.4-common php7.4-gd php7.4-xmlrpc php7.4-fpm \ php7.4-curl php7.4-intl php-imagick php7.4-mysql php7.4-zip php7.4-xml \ php7.4-mbstring php7.4-bcmath php7.4-sqlite3 -y
untuk menginstall berbagai module PHP lainnya bisa dicari dengan
sudo apt search php7.4 | grep tidy # output php7.4-tidy/focal-updates 7.4.3-4ubuntu2.6 amd64 tidy module for PHP
lalu install dengan
sudo apt search php7.4-tidy
2. Install PHP 8.0
Karena PHP 8.0 belum di support oleh Ubuntu 20.04, maka kita perlu menggunakan repository dari pihak ketiga. Tambahkan repository tersebut dengan cara
sudo LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php sudo apt update
Lalu install PHP 8.4 menggunakan apt
package manager
sudo apt install php8.0 php8.0-cli php8.0-common php8.0-gd php8.0-xmlrpc php8.0-fpm \ php8.0-curl php8.0-intl php-imagick php8.0-mysql php8.0-zip php8.0-xml \ php8.0-mbstring php8.0-bcmath php8.0-sqlite3 -y
Menggunakan PHP 7.4/8.0 dengan nginx
Untuk menggunakan PHP di nginx dengan fastcgi_pass
, untuk PHP 7.4
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
PHP 8.0
fastcgi_pass unix:/run/php/php8.0-fpm.sock;
Aktifkan PHP FPM Waktu Booting
Aktifkan PHP waktu booting, agar otomatis berjalan
# php 7.4 systemctl enable php7.4-fpm # php 8.0 systemctl enable php8.0-fpm
dari command line, bisa menjalankan versi yang berbeda dengan command
# PHP 7.4 php7.4 # PHP 8.0 php8.0