Cara Install dan Upgrade ke PHP 8.4 di Debian dan Ubuntu
Programming Tutorial PHP #php #php84 #debian #ubuntu

Cara Install dan Upgrade ke PHP 8.4 di Debian dan Ubuntu

A
Abd. Asis
5 min read
Bagikan:

PHP 8.4 resmi dirilis pada November 2024 dan membawa sejumlah perubahan signifikan: property hooks, asymmetric visibility, empat fungsi array baru, HTML5 parser yang standards-compliant, dan peningkatan performa JIT. Masalahnya, Debian dan Ubuntu tidak menyertakan PHP 8.4 di repositori resminya — baik Debian Bookworm maupun Ubuntu 22.04/24.04 masih menyediakan PHP versi lama secara default.

Solusinya adalah repositori yang dikelola oleh Ondřej Surý, maintainer resmi paket PHP untuk Debian. Repositori ini sudah menjadi standar de facto di komunitas PHP dan digunakan oleh jutaan server produksi. Panduan ini mencakup instalasi fresh dan upgrade dari PHP 8.3 atau versi sebelumnya.

Sebelum Mulai: Catat Paket PHP yang Sudah Terpasang

Jika sudah ada PHP di server, catat semua paket yang terpasang terlebih dahulu. Ini akan memudahkan proses instalasi ulang extension yang sama di versi baru.

dpkg -l | grep php | tee ~/php-packages-lama.txt

Output file tersebut akan berisi daftar lengkap paket PHP aktif — simpan sebagai referensi saat memasang extension di PHP 8.4 nanti.

Menambahkan Repository Ondřej Surý

Proses penambahan repositori berbeda antara Ubuntu dan Debian.

Ubuntu (20.04, 22.04, 24.04)

Ubuntu menyediakan cara paling singkat lewat PPA:

sudo LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
sudo apt update

Debian (Bullseye, Bookworm)

Debian memerlukan beberapa langkah manual untuk menambahkan keyring dan konfigurasi sumber paket:

sudo apt-get update
sudo apt-get install -y lsb-release ca-certificates curl

Unduh dan pasang keyring repositori:

sudo curl -sSLo /tmp/debsuryorg-archive-keyring.deb \
  https://packages.sury.org/debsuryorg-archive-keyring.deb
sudo dpkg -i /tmp/debsuryorg-archive-keyring.deb

Daftarkan repositori 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

Perintah lsb_release -sc secara otomatis mendeteksi codename distribusi (misalnya bookworm atau jammy). Repositori ini mendukung semua rilis Debian dan Ubuntu yang masih dalam masa dukungan aktif.

Instalasi PHP 8.4

Pilih paket sesuai cara PHP akan digunakan di server.

Hanya CLI

Cocok untuk menjalankan script, cron job, atau tools seperti Composer dan Artisan tanpa web server:

sudo apt install php8.4-cli

CLI + PHP-FPM (Rekomendasi untuk Nginx atau Caddy)

PHP-FPM adalah pilihan terbaik untuk server produksi modern. Lebih efisien dari modul Apache dan mudah dikonfigurasi dengan Nginx maupun Caddy:

sudo apt install php8.4-cli php8.4-fpm

CLI + Modul Apache

Jika menggunakan Apache dengan mod_php:

sudo apt install php8.4-cli libapache2-mod-php8.4

Memasang Extension

Setelah paket utama terpasang, pasang extension yang dibutuhkan. Format nama paketnya adalah php8.4-NAMAEXTENSION:

sudo apt install php8.4-common php8.4-{bcmath,bz2,curl,gd,gmp,intl,mbstring,opcache,readline,xml,zip}

Untuk mencari extension yang tersedia:

apt search php8.4

Verifikasi PHP sudah terpasang dengan benar:

php -v
PHP 8.4.x (cli) (built: ...) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.4.x, Copyright (c) Zend Technologies
    with Zend OPcache v8.4.x, Copyright (c), by Zend Technologies

Konfigurasi Web Server

Setelah PHP terpasang, sambungkan dengan web server yang digunakan.

Nginx dengan PHP-FPM

Pastikan socket FPM berjalan:

sudo systemctl enable --now php8.4-fpm
sudo systemctl status php8.4-fpm

Di konfigurasi block Nginx, arahkan fastcgi_pass ke socket PHP 8.4:

# /etc/nginx/sites-available/aplikasi-saya
server {
    listen 80;
    server_name aplikasi-saya.com;
    root /var/www/aplikasi-saya/public;

    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php8.4-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
    }
}

Jika sebelumnya menggunakan PHP 8.3, cukup ganti bagian socket dari php8.3-fpm.sock ke php8.4-fpm.sock.

Apache dengan PHP-FPM

Aktifkan konfigurasi FPM baru dan nonaktifkan yang lama:

sudo a2disconf php8.3-fpm
sudo a2enconf php8.4-fpm
sudo systemctl reload apache2

Apache dengan mod_php

Nonaktifkan modul PHP lama, aktifkan yang baru, lalu restart Apache:

sudo a2dismod php8.3
sudo a2enmod php8.4
sudo systemctl restart apache2

Caddy

Update direktif reverse_proxy di Caddyfile untuk mengarah ke socket PHP 8.4:

# Caddyfile
aplikasi-saya.com {
    root * /var/www/aplikasi-saya/public
    php_fastcgi unix//run/php/php8.4-fpm.sock
    file_server
}

Upgrade dari PHP 8.3 atau Versi Lama

Jika server sudah menjalankan aplikasi dengan PHP lama, lakukan upgrade secara bertahap.

Pasang PHP 8.4 dan extension yang sama dengan yang ada di versi lama (gunakan file php-packages-lama.txt yang disimpan di awal tadi sebagai panduan).

Uji aplikasi di environment staging dengan PHP 8.4 sebelum mengganti konfigurasi web server produksi.

Ganti konfigurasi web server untuk menggunakan socket atau modul PHP 8.4 seperti yang dijelaskan di bagian sebelumnya.

Setelah yakin semua berjalan normal, hapus paket PHP lama untuk membersihkan server:

sudo apt purge '^php8.3.*'
sudo apt autoremove

Jangan hapus paket PHP lama sebelum memastikan aplikasi berjalan stabil di PHP 8.4. Jika ada masalah, lebih mudah rollback selagi kedua versi masih terpasang. Perlu diperhatikan bahwa beberapa extension seperti IMAP, OCI8, PDO_OCI, dan pspell sudah dipindahkan ke PECL dan tidak lagi tersedia sebagai paket bawaan di PHP 8.4.

Mengelola Beberapa Versi PHP Secara Bersamaan

Repositori Ondřej Surý memungkinkan beberapa versi PHP berjalan berdampingan di satu server. Ini berguna untuk transisi bertahap atau menjalankan aplikasi berbeda dengan versi PHP yang berbeda.

Untuk mengganti versi PHP default yang digunakan command php:

sudo update-alternatives --config php

Pilih versi dari daftar yang muncul. Perubahan ini hanya memengaruhi command php di terminal — konfigurasi web server tetap independen dan diatur masing-masing.

Untuk Laravel dan framework lain yang menggunakan PHP-FPM, setiap virtual host bisa diarahkan ke socket FPM versi yang berbeda, sehingga aplikasi-lama.com tetap jalan di PHP 8.1 sementara aplikasi-baru.com sudah menggunakan PHP 8.4.

Jika sudah familiar dengan Laravel dan ingin mengetahui dampak upgrade PHP terhadap framework, artikel tentang Laravel Octane vs PHP-FPM bisa menjadi referensi menarik untuk mengoptimalkan performa lebih jauh setelah upgrade.

Kesimpulan

Instalasi PHP 8.4 di Debian dan Ubuntu sepenuhnya bergantung pada repositori Ondřej Surý — tidak ada cara resmi lain yang praktis. Prosesnya cukup lurus untuk fresh install, dan upgrade dari versi lama pun aman selama kedua versi dibiarkan berjalan berdampingan selama periode pengujian. Dengan property hooks, fungsi array baru, dan peningkatan performa JIT, migrasi ke PHP 8.4 layak diprioritaskan terutama untuk aplikasi yang sudah kompatibel dengan PHP 8.x.

Referensi

  1. 1PHP 8.4 — Official Release Announcement
  2. 2PHP Manual — Installing on Debian GNU/Linux
  3. 3Ondřej Surý PHP Repository — README
  4. 4Stitcher.io — What’s New in PHP 8.4

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