PHP 8.4 membawa beberapa fitur baru, peningkatan keamanan, dan peningkatan kinerja dengan sejumlah fitur yang sudah tidak digunakan lagi dan dihapus.
Panduan ini menjelaskan cara menginstal PHP 8.4 atau meng-upgrade ke PHP 8.4 di Ubuntu, Debian, atau turunannya. Meskipun dimungkinkan untuk mengkompilasi PHP dari sumbernya, menginstalnya dari repositori APT seperti yang dijelaskan di bawah ini sering kali lebih cepat dan lebih aman karena repositori-repositori ini akan menyediakan perbaikan bug terbaru dan pembaruan keamanan di masa mendatang.
PHP 8.4 tidak tersedia di repositori perangkat lunak Debian dan Ubuntu saat ini. Panduan ini menggunakan repositori yang dikelola oleh Ondřej Surý. Repositori PHP Ondrej telah menjadi repositori de-facto untuk PHP di Ubuntu, Debian, dan turunannya selama beberapa tahun.
Sebelum melanjutkan, pastikan untuk membuat cadangan sistem. Panduan ini menginstal PHP 8.4 secara berdampingan dengan instalasi PHP yang sudah ada, yang menawarkan cara mudah untuk beralih kembali ke instalasi PHP yang lain jika perlu.
1. Buat daftar paket PHP yang sudah ada
Langkah ini hanya berlaku saat memperbarui setup PHP yang sudah ada. Perintah berikut ini mencantumkan semua paket PHP yang terinstal dengan teks php pada namanya, menampilkannya pada layar, dan menuliskannya pada sebuah berkas yang bernama paket.txt. File ini sangat berguna pada langkah selanjutnya ketika menginstal paket PHP 8.4, untuk memastikan daftar versi PHP 8.4 yang sama dari ekstensi terinstal.
dpkg -l | grep php | tee packages.txt
2. Tambahkan ondrej/php PPA/DPA
Karena paket PHP 8.4 tidak tersedia di repositori perangkat lunak Debian atau Ubuntu saat ini, maka paket PHP harus berasal dari repositori lain.
Ondřej Surý memelihara arsip paket yang berisi binari yang dikompilasi dari semua versi PHP saat ini, untuk Ubuntu dan Debian. Ia juga mengirimkan beberapa ekstensi PECL termasuk ekstensi PECL untuk ekstensi inti PHP yang tidak dibundel dalam PHP 8.4.
Setelah repositori ini ditambahkan, instalasi awal dan pembaruan dapat dilakukan dengan perintah standar apt.
Ubuntu PPA
sudo LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php # Press enter to confirm.
sudo apt update
Debian DPA
sudo apt-get update
sudo apt-get -y install lsb-release ca-certificates curl apt-transport-https
sudo curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
sudo dpkg -i /tmp/debsuryorg-archive-keyring.deb
sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
sudo apt-get update
3. Instal paket-paket PHP 8.4 Server API
Pada PPA dan DPA Ondrej, paket PHP 8.4 mengikuti pola php8.1-NAME. PECL dan ekstensi PHP yang digunakan bersama juga mengikuti pola yang sama.
Sebelum menginstal ekstensi PHP, pastikan untuk menginstal salah satu paket PHP Server API (SAPI) berikut ini:
Instalasi PHP-CLI saja
Untuk menginstal PHP CLI, instal paket php8.1-cli, beserta ekstensi yang diinginkan.
sudo apt instal php8.4-cli
PHP-CLI dan PHP sebagai modul Apache
Untuk menginstal PHP CLI dan PHP 8.4 sebagai modul Apache, instal paket libapache2-mod-php8.4:
sudo apt instal php8.4-cli libapache2-mod-php8.4
Kecuali jika aplikasi PHP membutuhkan PHP untuk diinstal sebagai modul Apache, pertimbangkan untuk menginstal PHP-FPM sebagai gantinya.
PHP CLI dan PHP-FPM (disarankan)
Direkomendasikan untuk menginstal PHP-FPM untuk mengintegrasikan PHP dengan server web seperti Apache, Nginx, dan Caddy.
sudo apt install php8.4-cli php8.4-fpm
Ini akan menginstal layanan php8.4-fpm dan secara otomatis mengaktifkannya.
5. Periksa Instalasi
Untuk memeriksa instalasi PHP secara cepat, jalankan perintah berikut ini:
php -v
Ini akan menampilkan versi PHP, waktu pembuatan, dan informasi lainnya:

Jika layanan PHP-FPM terinstal, statusnya dapat diperiksa sebagai berikut:
sudo systemctl status php8.4-fpm
Jika server PHP-FPM berhasil berjalan, maka akan muncul keluaran seperti di bawah ini:

4. Menginstal Ekstensi PHP
Semua ekstensi PHP dan ekstensi PECL yang digunakan bersama mengikuti pola php8.4-EXTNAME, di mana extname adalah nama ekstensi.
Ketika mengupgrade sistem yang sudah ada, lihat file packages.txt yang dibuat pada langkah pertama untuk mengecek ekstensi PHP 8.3 atau yang lebih lama.
Untuk menginstal ekstensi PHP, gunakan perintah apt install dengan nama ekstensi PHP dengan awalan php-8.4-. Sebagai contoh, ekstensi gd diinstal dengan paket php8.4-gd:
sudo apt instal php8.4-gd
Perintah berikut ini menginstal sekumpulan ekstensi PHP yang paling umum yang dibutuhkan oleh sebagian besar pustaka dan kerangka kerja PHP:
sudo apt instal php8.4-common php8.4-{bcmath,bz2,curl,gd,gmp,intl,mbstring,opcache,readline,xml,zip}
Untuk mencari ekstensi PHP tambahan, gunakan perintah apt search:
apt search php8.4
4. Integrasi Server Web
Tergantung pada server API yang diinstal pada langkah 3, integrasi server web mungkin memerlukan konfigurasi tambahan agar peningkatan PHP 8.4 dapat diterapkan.
PHP-FPM
Ketika menggunakan PHP-FPM (dengan menginstal paket php8.4-fpm), server web harus dikonfigurasi ulang agar dapat berkomunikasi dengan server PHP 8.4 FPM melalui jalur soket yang telah diperbarui.
Apache: Perubahan konfigurasi ini dipermudah dengan mengaktifkan file konfigurasi PHP 8.4:
sudo a2enconf php8.4-fpm
Nginx: Perbarui arahan fastcgi_pass dari jalur soket PHP FPM yang lama ke jalur PHP 8.4 yang baru:
- fastcgi_pass unix:/run/php/php8.3-fpm.sock;
+ fastcgi_pass unix:/run/php/php8.4-fpm.sock;
Lihat Dokumentasi Nginx untuk informasi lebih lanjut
Caddy Server: Perbarui arahan reverse_proxy untuk menggunakan jalur soket server PHP 8.4 FPM yang baru:
- reverse_proxy @phpFiles unix//run/php/php8.3-fpm.sock
+ reverse_proxy @phpFiles unix//run/php/php8.4-fpm.sock
PHP sebagai modul Apache
Jika PHP diinstal sebagai modul Apache, perintah berikut ini akan menonaktifkan modul PHP sebelumnya (8.3 pada contoh ini) dan mengaktifkan versi PHP yang baru:
sudo a2dismod php8.3 # Change to the current PHP version
sudo a2enmod php8.4
Migrasi Konfigurasi
File konfigurasi untuk pengaturan PHP yang baru akan berada di direktori /etc/php/8.4. Instalasi PHP yang sudah ada kemungkinan besar terinstal di direktori /etc/php/VERSION.
Jika diinginkan, konfigurasi dapat disalin dari versi PHP yang lebih lama. Menyalin file yang sudah ada adalah tidak dikonfigurasi. Sebagai gantinya, pertimbangkan untuk memeriksa perbedaan antara dua file php.ini dan memperbarui file php.ini PHP 8.4.
Sebagai contoh, perintah berikut ini membandingkan CLI PHP 8.4 php.ini dengan PHP 8.4s:
diff /etc/php/8.3/cli/php.ini /etc/php/8.4/cli/php.ini
Ketika menggunakan PHP-FPM, pastikan untuk memperbarui berkas /etc/php/8.4/fpm/pool.d/www.conf agar sesuai dengan konfigurasi pool runner PHP-FPM yang lama.
Menghapus Versi PHP Lama
Setelah mengonfirmasi bahwa CLI PHP yang baru (dan secara opsional, integrasi server web) bekerja dengan benar, paket dan layanan versi PHP yang lama dapat dihapus jika tidak lagi diperlukan.
sudo apt membersihkan '^php8.3.*'
Contoh di atas menunjukkan perintah apt purge yang wildcard-nya cocok dengan semua paket PHP 8.3.
Menjalankan PHP 8.4 bersama versi PHP yang lain
Jika diinginkan, instalasi PHP 8.4 yang disebutkan dalam langkah-langkah di atas dapat berjalan berdampingan dengan versi PHP lainnya.
Ketika menginstal PHP 8.4 CLI, PHP 8.4 akan diinstal pada /usr/bin/php8.4. Versi PHP lainnya akan diinstal pada lokasi yang sama dengan akhiran nama versi (sebagai contoh, PHP 8.3 pada /usr/bin/php8.3). Dimungkinkan untuk memanggil versi CLI PHP lainnya secara langsung dengan memanggil jalur ini.
Nama perintah php default akan ditautkan ke versi PHP terbaru secara default. Namun, dengan menggunakan perintah update-alternatives, hal ini dapat diubah ke versi PHP lainnya:
sudo update-alternatives --config php
Ini membuka antarmuka interaktif untuk memilih jalur biner PHP alternatif yang ditunjuk oleh php:
There are 2 choices for the alternative php (providing /usr/bin/php).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/php8.4 84 auto mode
1 /usr/bin/php8.3 83 manual mode
2 /usr/bin/php8.4 84 manual mode
Untuk mengatur jalur tanpa prompt interaktif:
update-alternatif --set php /usr/bin/php8.4
Sumber:
https://php.watch/articles/php-84-install-upgrade-guide-debian-ubuntu