PHP 8.5 dirilis pada 20 November 2025 dan membawa beberapa fitur yang sudah lama ditunggu komunitas PHP: pipe operator (|>), URI extension bawaan, fungsi array_first() dan array_last(), serta OPcache yang kini selalu terkompilasi statis ke dalam PHP. Seperti biasa, Debian dan Ubuntu tidak menyertakan PHP 8.5 di repositori resminya secara langsung.
Solusinya tetap sama: repositori yang dikelola oleh Ondřej Surý, maintainer resmi paket PHP untuk Debian. Panduan ini mencakup instalasi fresh di server baru maupun upgrade dari PHP 8.4. Sebelum mulai, pastikan sudah membaca artikel Cara Install dan Upgrade ke PHP 8.4 di Debian dan Ubuntu jika belum familiar dengan alur instalasi PHP dari repositori pihak ketiga ini.
Apa yang Baru di PHP 8.5
Sebelum masuk ke proses instalasi, ada baiknya mengenal perubahan utama yang dibawa PHP 8.5. Ini akan membantu memutuskan apakah sudah waktunya upgrade, terutama jika ada kode yang menggunakan fitur atau fungsi yang terdampak.
Pipe operator (|>) adalah fitur yang paling banyak dibicarakan. Operator ini memungkinkan chaining fungsi dari kiri ke kanan tanpa nested call yang dalam atau variabel sementara yang menumpuk:
// Sebelum: nested dan sulit dibaca
$slug = strtolower(str_replace(' ', '-', trim($judul)));
// Dengan pipe operator
$slug = $judul
|> trim(...)
|> (fn($str) => str_replace(' ', '-', $str))
|> strtolower(...);
URI extension hadir sebagai solusi standar untuk parsing URL. Berbeda dari parse_url() yang mengembalikan array, URI extension menyediakan API berbasis objek yang mengikuti RFC 3986 dan standar WHATWG:
use Uri\Rfc3986\Uri;
$uri = new Uri('https://example.com/artikel?lang=id#konten');
echo $uri->getHost(); // example.com
echo $uri->getPath(); // /artikel
echo $uri->getQuery(); // lang=id
Beberapa hal lain yang perlu dicatat sebelum upgrade:
array_first()danarray_last()— fungsi baru untuk mengambil elemen pertama atau terakhir array tanpa manipulasi tambahan- OPcache kini selalu tersedia — tidak perlu instal extension terpisah
__sleep()dan__wakeup()mulai deprecated — migrasi ke__serialize()dan__unserialize()- Operator backtick (
`command`) deprecated — ganti denganshell_exec() - INI directive
disable_classesdihapus sepenuhnya
Cast non-kanonik seperti (boolean), (integer), dan (double) sudah deprecated di PHP 8.5. Ganti dengan (bool), (int), dan (float) di seluruh codebase sebelum upgrade ke versi berikutnya.
Persiapan Sebelum Upgrade
Jika sudah ada PHP yang berjalan di server, catat semua paket yang terpasang terlebih dahulu. Langkah ini penting untuk memastikan semua extension yang dibutuhkan aplikasi bisa diinstal ulang di PHP 8.5.
php -m | tee php-modules.txt
dpkg -l | grep php | tee php-packages.txt
Dua file teks ini akan menjadi acuan saat instalasi extension nanti. Simpan di lokasi yang mudah diakses.
Menambahkan Repository PHP di Ubuntu
Ubuntu menggunakan PPA dari Ondřej Surý yang bisa ditambahkan langsung lewat add-apt-repository. Pastikan paket software-properties-common sudah terpasang.
sudo apt-get install -y software-properties-common
sudo LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
sudo apt-get update
Perintah add-apt-repository akan menambahkan PPA dan mengimpor GPG key secara otomatis. Setelah apt-get update selesai, paket PHP 8.5 sudah tersedia untuk diinstal.
Menambahkan Repository PHP di Debian
Debian memerlukan langkah yang sedikit lebih manual karena tidak punya add-apt-repository. Semua langkah berikut perlu dijalankan secara berurutan.
Pertama, pastikan dependensi yang dibutuhkan sudah tersedia:
sudo apt-get update
sudo apt-get install -y lsb-release ca-certificates curl apt-transport-https
Unduh dan pasang keyring resmi dari sury.org:
sudo curl -sSLo /tmp/debsuryorg-archive-keyring.deb \
https://packages.sury.org/debsuryorg-archive-keyring.deb
sudo dpkg -i /tmp/debsuryorg-archive-keyring.deb
Tambahkan entri repository ke APT sources:
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
Repository ini mendukung Debian 11 (Bullseye), Debian 12 (Bookworm), dan Debian 13 (Trixie).
Instalasi PHP 8.5
Setelah repository terpasang, instalasi PHP 8.5 bisa dilakukan dalam beberapa langkah tergantung kebutuhan. Mulai dari CLI saja untuk penggunaan script, hingga konfigurasi lengkap dengan FPM untuk web server.
Instalasi PHP CLI
Untuk keperluan menjalankan script dari terminal atau cronjob, cukup instal paket CLI:
sudo apt-get install -y php8.5-cli
Verifikasi instalasi berhasil dengan memeriksa versi:
php8.5 --version
Output yang diharapkan:
PHP 8.5.x (cli) (built: ...) (NTS)
Instalasi Extension Umum
Sebagian besar aplikasi PHP membutuhkan extension tambahan. Instal sekaligus menggunakan brace expansion:
sudo apt-get install -y php8.5-common \
php8.5-{bcmath,bz2,curl,gd,gmp,intl,mbstring,readline,xml,zip}
Jika menggunakan database, tambahkan driver yang sesuai:
# MySQL / MariaDB
sudo apt-get install -y php8.5-mysql
# PostgreSQL
sudo apt-get install -y php8.5-pgsql
# SQLite
sudo apt-get install -y php8.5-sqlite3
Instalasi PHP-FPM untuk Web Server
Untuk integrasi dengan Nginx atau Apache menggunakan FastCGI, instal PHP-FPM:
sudo apt-get install -y php8.5-fpm
Aktifkan dan periksa status service:
sudo systemctl enable php8.5-fpm
sudo systemctl start php8.5-fpm
sudo systemctl status php8.5-fpm
Konfigurasi Web Server
Integrasi dengan Nginx
Di konfigurasi server block Nginx, arahkan fastcgi_pass ke socket PHP 8.5:
server {
listen 80;
server_name contoh.local;
root /var/www/html;
index index.php;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.5-fpm.sock;
}
}
Setelah mengubah konfigurasi, reload Nginx:
sudo systemctl reload nginx
Integrasi dengan Apache
Apache menggunakan mod_proxy_fcgi. Aktifkan konfigurasi PHP-FPM:
sudo a2enconf php8.5-fpm
sudo systemctl reload apache2
Integrasi dengan Caddy
Di Caddyfile, perbarui directive reverse_proxy ke socket PHP 8.5:
example.com {
root * /var/www/html
php_fastcgi unix//run/php/php8.5-fpm.sock
file_server
}
Mengelola Beberapa Versi PHP
Jika server menjalankan beberapa versi PHP secara bersamaan, gunakan update-alternatives untuk mengatur versi default:
sudo update-alternatives --config php
Perintah ini akan menampilkan daftar versi yang tersedia dan meminta pilihan. Alternatifnya, atur langsung tanpa prompt interaktif:
sudo update-alternatives --set php /usr/bin/php8.5
Verifikasi versi aktif:
php --version
Untuk proyek yang menggunakan Composer, tentukan versi PHP secara eksplisit jika ada beberapa versi terpasang: php8.5 /usr/local/bin/composer install. Ini menghindari ketidakcocokan antara versi default sistem dan versi yang digunakan proyek.
Membersihkan Versi PHP Lama
Setelah memastikan semua berjalan normal dengan PHP 8.5, versi lama bisa dihapus untuk menghemat ruang disk. Gunakan purge agar file konfigurasi juga ikut dibersihkan:
sudo apt-get purge '^php8.4.*'
sudo apt-get autoremove
Sebelum menjalankan perintah ini, pastikan tidak ada service lain yang masih bergantung pada versi PHP lama tersebut.
Kesimpulan
PHP 8.5 membawa perubahan yang cukup signifikan — terutama pipe operator dan URI extension yang mengubah cara kita menulis kode sehari-hari. Proses instalasinya sendiri tidak berbeda jauh dari versi sebelumnya: tambah repository Ondřej Surý, instal paket yang dibutuhkan, dan konfigurasikan web server. Yang perlu diperhatikan adalah bagian deprecated features, khususnya magic method __sleep()/__wakeup() dan cast non-kanonik, agar tidak kejutan saat migrasi ke versi PHP berikutnya.