Pada tutorial kali ini kita akan membahas cara install berbagai versi PHP di Debian, versi PHP yang akan kita gunakan adalah 8.1.x, 8.2.x dan 8.3.x karena ketiga versi tersebut yang masih di support oleh PHP.
Pada implementasinya, cara ini bisa kita gunakan untuk meng-hosting berbagai jenis aplikasi dengan berbagai versi PHP. Proses PHP akan dijalankan dengan mode PHP-FPM (PHP FastCGI Process Manager)
Untuk pengguna Ubuntu 20.04 bisa melihat tutorialnya disini
Install Repository Sury
Cara untuk menginstall repository Sury
sudo apt install apt-transport-https lsb-release ca-certificates wget curl -y echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list sudo curl -sSL -o /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg sudo apt update; sudo apt upgrade -y
Install PHP 8.1
Ikuti langkah-langkah ini untuk menginstall PHP 8.1
apt-get install php8.1 php8.1-cli php8.1-gd php8.1-xmlrpc php8.1-fpm \ php8.1-curl php8.1-intl php8.1-imagick php8.1-mysqlnd php8.1-zip php8.1-xml \ php8.1-mbstring php8.1-bcmath -y
Install PHP 8.2
Ikuti langkah-langkah ini untuk menginstall PHP 8.2
apt-get install php8.2 php8.2-cli php8.2-gd php8.2-xmlrpc php8.2-fpm \ php8.2-curl php8.2-intl php8.2-imagick php8.2-mysqlnd php8.2-zip php8.2-xml \ php8.2-mbstring php8.2-bcmath -y
Install PHP 8.3
Ikuti langkah-langkah ini untuk menginstall PHP 8.3
apt-get install php8.3 php8.3-cli php8.3-gd php8.3-xmlrpc php8.3-fpm \ php8.3-curl php8.3-intl php8.3-imagick php8.3-mysqlnd php8.3-zip php8.3-xml \ php8.3-mbstring php8.3-bcmath -y
Konfigurasi PHP FPM
Letak konfigurasi PHP FPM berada di /etc/php/{VERSI}/fpm/pool.d/www.conf
, sementara konfigurasi untuk php.ini berada di /etc/php/{VERSI}/fpm/php.ini
# PHP FPM /etc/php/8.1/fpm/pool.d/www.conf /etc/php/8.2/fpm/pool.d/www.conf /etc/php/8.3/fpm/pool.d/www.conf # PHP.ini /etc/php/8.1/fpm/php.ini /etc/php/8.2/fpm/php.ini /etc/php/8.3/fpm/php.ini
Menjalankan Service PHP
Untuk menjalankan service PHP kita akan menggunakan systemd, caranya sangat mudah ikuti cara dibawah ini
# PHP 8.1 sudo systemctl enable php8.1-fpm sudo systemctl start php8.1-fpm # PHP 8.2 sudo systemctl enable php8.2-fpm sudo systemctl start php8.2-fpm # PHP 8.3 sudo systemctl enable php8.3-fpm sudo systemctl start php8.3-fpm
Cara Penggunaan
Contoh kita menggunakan web server nginx, dan memiliki konfigurasi berikut untuk DOMAIN1.com, lihat dibagian fastcgi_pass
location ~ \.php(?:$|/) { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_pass unix:/run/php/php8.1-fpm.sock; fastcgi_buffers 4 256k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; }
untuk menggunakan versi PHP yang berbeda gantikan sesuai dengan lokasi Unix Socket masing-masing PHP.
unix:/run/php/php8.1-fpm.sock unix:/run/php/php8.2-fpm.sock unix:/run/php/php8.3-fpm.sock
Setelah melakukan perubahan tersebut restart nginx
sudo nginx -t && sudo systemctl restart nginx