Cara Install dan Upgrade ke PHP 8.5 di Debian dan Ubuntu
Programming Tutorial PHP #php #php85 #debian #ubuntu

Cara Install dan Upgrade ke PHP 8.5 di Debian dan Ubuntu

A
Abd. Asis
5 min read
Bagikan:

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() dan array_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 dengan shell_exec()
  • INI directive disable_classes dihapus 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.

Referensi

  1. 1PHP 8.5 Release Announcement — php.net
  2. 2DPA — Debian PHP APT repository oleh Ondřej Surý
  3. 3RFC: Pipe Operator v3 — PHP Wiki

Tentang Penulis

Abd. Asis

Abd. Asis

Software Developer dan Laravel Programmer dari Madura, Indonesia. Passionate tentang PHP, Laravel, dan teknologi web modern.

Komentar

Artikel Terkait

Artikel lain yang mungkin menarik untuk kamu