Tutorial ini menunjukkan cara menginstal beberapa versi PHP di Ubuntu dan buat host virtual Apache atau blok server Nginx tertentu menggunakan salah satunya. Ini berguna ketika Anda memiliki beberapa aplikasi web di server Anda tetapi satu atau dua di antaranya tidak kompatibel dengan versi PHP di repositori default Ubuntu. Repositori Ubuntu 18.04 termasuk PHP7.2 dan repositori Ubuntu 20.04 termasuk PHP7.4. Kita akan melihat cara memasang PHP7.3 , PHP7.4 , dan PHP8.0 pada satu server Ubuntu.
Instal Beberapa Versi PHP di Ubuntu melalui PPA
Cara termudah untuk menginstal beberapa versi PHP adalah dengan menggunakan PPA dari Ondřej Surý, yang merupakan pengembang Debian. Untuk menambahkan PPA ini, jalankan perintah berikut di terminal. software-properties-common
paket diperlukan jika Anda ingin menginstal perangkat lunak dari PPA. Ini diinstal secara otomatis di desktop Ubuntu, tetapi mungkin tidak ada di server Ubuntu Anda.
sudo apt install software-properties-common sudo add-apt-repository ppa:ondrej/php sudo apt update
Sekarang Anda dapat menginstal PHP8.0 di Ubuntu dengan menjalankan perintah berikut.
sudo apt install php8.0 php8.0-fpm
Dan instal beberapa ekstensi PHP8.0 umum.
sudo apt install php8.0-mysql php8.0-mbstring php8.0-xml php8.0-gd php8.0-curl
Anda dapat melihat semua ekstensi PHP7.4 yang tersedia dengan mengetikkan sudo apt install php8.0
dan menekan Tab
kunci dua kali.
Untuk memasang PHP7.4 di Ubuntu, jalankan
sudo apt install php7.4 php7.4-fpm
Instal beberapa ekstensi PHP7.4 umum.
sudo apt install php7.4-mysql php7.4-mbstring php7.4-xml php7.4-gd php7.4-curl
Anda dapat menginstal PHP7.3 dengan cara yang sama. Cukup ganti nomor versi dalam perintah ini.
Petunjuk :PHP5.6, PHP7.0, dan PHP7.2 mencapai akhir masa pakainya, tetapi Anda masih bisa mendapatkan perbaikan keamanan dari PPA ini.
Mengganti Versi PHP di Apache Virtual Host
Secara default, Apache menggunakan satu versi PHP di semua virtual host. Jika Anda ingin menggunakan versi PHP yang berbeda di host virtual tertentu, Anda harus menonaktifkan modul Apache PHP dan menjalankan kode PHP melalui PHP-FPM. Periksa apakah mod_php
sudah terpasang.
dpkg -l | grep libapache2-mod-php
Jika diinstal, Anda harus menonaktifkannya. Misalnya, saya punya libapache2-mod-php7.4
diinstal di server Ubuntu 20.04 saya,
Saya menonaktifkannya dengan menjalankan:
sudo a2dismod php7.4
Anda juga perlu menonaktifkan modul MPM prefork.
sudo a2dismod mpm_prefork
Sekarang Anda perlu menjalankan perintah berikut untuk mengaktifkan tiga modul agar dapat menggunakan PHP-FPM, terlepas dari apakah mod_php
diinstal di server Anda.
sudo a2enmod mpm_event proxy_fcgi setenvif
Cuplikan konfigurasi PHP-FPM terletak di /etc/apache2/conf-available/
.
Katakanlah Anda ingin menggunakan PHP8.0 di virtual host Apache, kemudian buka file konfigurasi virtual host dan tambahkan baris berikut di <VirtualHost>
tag.
Include /etc/apache2/conf-available/php8.0-fpm.conf
Seperti ini:
Simpan dan tutup file. Kemudian periksa sintaks.
sudo apachectl -t
Mulai ulang Apache agar perubahan diterapkan.
sudo systemctl restart apache2
Sekarang katakanlah Anda ingin menggunakan PHP7.3 di virtual host Mautic karena Mautic tidak kompatibel dengan PHP7.4, lalu tambahkan baris berikut di virtual host Mautic Anda di antara <VirtualHost>
tag dan kemudian restart Apache.
Include /etc/apache2/conf-available/php7.3-fpm.conf
Untuk menguji versi PHP mana yang digunakan oleh virtual host Anda, Anda dapat membuat info.php
file di root dokumen Anda (misalkan /var/www/html
).
sudo nano /var/www/html/info.php
Rekatkan kode PHP berikut ke dalam file.
<?php phpinfo(); ?>
Simpan dan tutup file. Kemudian di bilah alamat browser Anda, ketik
your-domain.com/info.php
Mengganti Versi PHP di Blok Server Nginx
Sangat mudah untuk mengganti versi PHP di blok server Nginx. Seperti yang mungkin Anda ketahui, Nginx menjalankan kode PHP melalui PHP-FPM, yang mendengarkan pada soket Unix. File soket terletak di /run/php/
direktori.
Seperti yang Anda lihat dari tangkapan layar, ada beberapa file soket PHP-FPM (.sock) di server saya yang sesuai dengan versi PHP yang berbeda. File blok server Nginx Anda biasanya memiliki cuplikan berikut untuk terhubung ke server PHP-FPM.
location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
Versi PHP yang digunakan oleh Nginx ditentukan oleh baris ketiga dalam cuplikan. Untuk menggunakan PHP8.0 di blok server Nginx tertentu, ubah baris tersebut menjadi:
fastcgi_pass unix:/run/php/php8.0-fpm.sock;
Untuk menggunakan PHP7.3 di blok server Nginx, ubah baris tersebut menjadi
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
Saya yakin Anda mendapatkan idenya sekarang. Simpan dan tutup file. Kemudian muat ulang Nginx agar perubahan diterapkan.
sudo systemctl reload nginx
Untuk menguji versi PHP mana yang digunakan oleh blok server Anda, Anda dapat membuat info.php
file di root dokumen Anda (misalkan /var/www/html
).
sudo nano /var/www/html/info.php
Rekatkan kode PHP berikut ke dalam file.
<?php phpinfo(); ?>
Simpan dan tutup file. Kemudian di bilah alamat browser Anda, ketik
your-domain.com/info.php
Cara Menyetel Versi PHP Default untuk Baris Perintah
Jika Anda menginstal versi PHP yang lebih baru di Ubuntu, maka itu akan menjadi versi default untuk baris perintah. Saya menginstal PHP8.0, tetapi saya masih menginginkan PHP7.4 sebagai versi default untuk baris perintah.
Untuk mengatur versi PHP baris perintah default, jalankan perintah berikut.
sudo update-alternatives --config php
Untuk memeriksa versi PHP baris perintah saat ini, jalankan
php --version