Menjalankan PHP multi-versi di Apache Web Server pada Ubuntu Server dapat dicapai dengan menggunakan modul proxy_fcgi
dan SetHandler
untuk masing-masing versi PHP. Berikut adalah langkah-langkah umum untuk mencapai ini:
1. Install PHP Versi yang Dibutuhkan:
Instal PHP versi yang diinginkan pada Ubuntu menggunakan perintah seperti berikut:
sudo apt-get install php7.2
sudo apt-get install php7.4
# Sesuaikan versi PHP yang Anda butuhkan
2. Instal Modul Apache proxy_fcgi
:
sudo a2enmod proxy_fcgi
sudo systemctl restart apache2
3. Konfigurasi PHP Multi-Versi di Apache:
Buat file konfigurasi Virtual Host atau tambahkan ke konfigurasi default Apache. Di dalam konfigurasi ini, kita akan menetapkan ProxyPassMatch
untuk setiap versi PHP.
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/html
<FilesMatch \.php$>
SetHandler "proxy:fcgi://localhost:9000"
</FilesMatch>
</VirtualHost>
<VirtualHost *:80>
ServerName example2.com
DocumentRoot /var/www/html2
<FilesMatch \.php$>
SetHandler "proxy:fcgi://localhost:9001"
</FilesMatch>
</VirtualHost>
4. Konfigurasi PHP-FPM untuk Setiap Versi PHP:
Buat berkas konfigurasi PHP-FPM untuk setiap versi PHP. Copy atau buat symlink dari berkas konfigurasi default PHP-FPM dan ubah sesuai kebutuhan:
sudo cp /etc/php/7.2/fpm/pool.d/www.conf /etc/php/7.2/fpm/pool.d/example.conf
sudo cp /etc/php/7.4/fpm/pool.d/www.conf /etc/php/7.4/fpm/pool.d/example2.conf
Edit berkas konfigurasi yang baru dibuat:
sudo nano /etc/php/7.2/fpm/pool.d/example.conf
[example]
listen = 127.0.0.1:9000
listen.allowed_clients = 127.0.0.1
sudo nano /etc/php/7.4/fpm/pool.d/example2.conf
[example2]
listen = 127.0.0.1:9001
listen.allowed_clients = 127.0.0.1
5. Restart PHP-FPM dan Apache:
Restart PHP-FPM dan Apache untuk menerapkan perubahan:
sudo systemctl restart php7.2-fpm
sudo systemctl restart php7.4-fpm
sudo systemctl restart apache2
6. Uji Coba Konfigurasi:
Buat berkas PHP di direktori web root masing-masing Virtual Host dan akses melalui web browser. Pastikan bahwa PHP berjalan dengan versi yang benar untuk setiap Virtual Host.
Perhatikan bahwa contoh ini adalah cara umum untuk menjalankan PHP multi-versi di Apache. Penyesuaian lebih lanjut mungkin diperlukan berdasarkan kebutuhan dan konfigurasi khusus Anda.