Cara Install PHP 8 di Ubuntu 24.04: Panduan Lengkap untuk Developer

Menginstal PHP di server development atau produksi mungkin terasa seperti tugas rutin, tapi dengan rilis Ubuntu 24.04 “Noble Numbat” dan versi PHP 8.x yang terus berevolusi, ada beberapa nuansa yang perlu diperhatikan. Sebagai developer, Anda pasti ingin PHP versi terbaru yang stabil untuk mendapatkan performa terbaik dan fitur-fitur modern seperti JIT (Just In Time) compiler di PHP 8.0+, fitur Enums, Readonly Properties di PHP 8.1, dan Typed Class Constants di PHP 8.3.

Panduan ini akan membawa Anda melalui proses instalasi PHP 8.x (khususnya PHP 8.3, sebagai versi terbaru dari seri 8) di Ubuntu 24.04 secara langkah demi langkah. Kita akan menggunakan repository PPA eksternal dari Ondrej Sury, yang sudah dikenal di kalangan developer Linux karena menyediakan paket PHP dan Nginx yang paling up-to-date dan stabil. Mari kita mulai!

Daftar Isi sembunyikan

Persiapan Awal Sebelum Instalasi

Sebelum kita mulai menginstal PHP, penting untuk memastikan sistem Ubuntu Anda dalam kondisi terbaru dan menginstal beberapa dependensi dasar. Ini adalah praktik terbaik untuk menghindari masalah kompatibilitas di kemudian hari.

1. Update Sistem dan Instal Dependensi

Buka terminal Anda dan jalankan perintah berikut untuk memperbarui daftar paket dan meng-upgrade paket yang sudah terinstal. Setelah itu, instal paket software-properties-common yang dibutuhkan untuk menambahkan repository PPA.

  • Update daftar paket:
  • sudo apt update

  • Upgrade paket yang sudah terinstal:
  • sudo apt upgrade -y

  • Instal dependensi untuk PPA:
  • sudo apt install -y software-properties-common ca-certificates lsb-release apt-transport-https

Menambahkan Repository PHP Ondrej PPA

Secara default, repository Ubuntu 24.04 mungkin tidak selalu menyediakan versi PHP terbaru yang Anda inginkan, atau setidaknya tidak secepat yang disediakan oleh Ondrej Sury. Ondrej Sury adalah maintainer paket Debian yang sangat dihormati dan menyediakan versi PHP yang selalu up-to-date dan dikompilasi dengan baik untuk berbagai versi Ubuntu.

1. Tambahkan Repository Ondrej PPA

Jalankan perintah berikut di terminal Anda untuk menambahkan PPA Ondrej Sury ke sistem Anda:

sudo add-apt-repository ppa:ondrej/php -y

2. Update Daftar Paket Lagi

Setelah menambahkan PPA baru, Anda perlu memperbarui daftar paket agar sistem Anda mengetahui paket-paket baru yang tersedia dari repository tersebut:

sudo apt update

Instalasi PHP 8.3 dan Modul Esensial

Sekarang kita siap untuk menginstal PHP 8.3. Selain paket PHP inti, kita juga akan menginstal beberapa modul PHP yang paling sering digunakan oleh developer. Modul-modul ini esensial untuk mendukung berbagai aplikasi web modern, mulai dari database hingga manipulasi gambar.

1. Instal PHP 8.3 Core

Untuk menginstal PHP 8.3 CLI (Command Line Interface), jalankan perintah ini:

sudo apt install -y php8.3-cli

2. Instal Modul PHP Umum

Berikut adalah daftar modul PHP yang umumnya dibutuhkan. Anda bisa memilih mana yang relevan untuk proyek Anda, tapi menginstal ini adalah titik awal yang baik.

  • Modul untuk database (MySQL/MariaDB, PostgreSQL):
  • sudo apt install -y php8.3-mysql php8.3-pgsql

  • Modul untuk Curl (HTTP requests):
  • sudo apt install -y php8.3-curl

  • Modul untuk GD (Image manipulation):
  • sudo apt install -y php8.3-gd

  • Modul untuk MBString (Multi-byte string functions):
  • sudo apt install -y php8.3-mbstring

  • Modul untuk XML (XML parsing):
  • sudo apt install -y php8.3-xml

  • Modul untuk Zip (Archive handling):
  • sudo apt install -y php8.3-zip

  • Modul untuk Opcache (Performance cache):
  • sudo apt install -y php8.3-opcache

  • Modul untuk Intl (Internationalization):
  • sudo apt install -y php8.3-intl

  • Modul untuk BCMath (Arbitrary precision mathematics):
  • sudo apt install -y php8.3-bcmath

  • Modul untuk Common (Sertakan ekstensi umum seperti sysvshm, dba, dll.):
  • sudo apt install -y php8.3-common

Anda bisa menginstal semua modul di atas dalam satu perintah:

sudo apt install -y php8.3-cli php8.3-mysql php8.3-pgsql php8.3-curl php8.3-gd php8.3-mbstring php8.3-xml php8.3-zip php8.3-opcache php8.3-intl php8.3-bcmath php8.3-common

3. Verifikasi Instalasi PHP

Setelah instalasi selesai, Anda bisa memeriksa versi PHP yang terinstal:

php -v

Outputnya akan menunjukkan versi PHP 8.3 yang baru Anda instal, seperti:

PHP 8.3.x (cli) (built: ... ) (NTS)

Konfigurasi PHP untuk Web Server

Agar PHP bisa melayani aplikasi web Anda, ia harus terintegrasi dengan web server. Dua web server paling populer adalah Apache dan Nginx. Pilih salah satu sesuai preferensi Anda.

Untuk Apache Web Server

Jika Anda menggunakan Apache, Anda perlu menginstal Apache dan modul PHP yang sesuai.

1. Instal Apache

sudo apt install -y apache2

2. Instal Modul PHP untuk Apache (mod_php)

Kita akan menginstal paket libapache2-mod-php8.3 yang memungkinkan Apache memproses file PHP menggunakan modul MPM Prefork.

sudo apt install -y libapache2-mod-php8.3

3. Aktifkan Modul PHP dan Restart Apache

Modul PHP biasanya otomatis aktif setelah instalasi. Anda bisa memeriksanya dan me-restart Apache untuk menerapkan perubahan.

sudo a2enmod php8.3 (Jika belum aktif)

sudo systemctl restart apache2

4. Tes Instalasi PHP dengan info.php

Buat file info.php di direktori root web server Apache Anda (biasanya /var/www/html/):

sudo nano /var/www/html/info.php

Isi file tersebut dengan baris ini:

<?php
phpinfo();
?>

Simpan dan tutup file (Ctrl+X, Y, Enter).

Sekarang, buka browser Anda dan navigasikan ke http://your_server_ip_or_domain/info.php. Anda akan melihat halaman informasi PHP yang detail, mengkonfirmasi bahwa PHP 8.3 berhasil diinstal dan terintegrasi dengan Apache.

Untuk Nginx Web Server (dengan PHP-FPM)

Nginx tidak memproses PHP secara native. Ia mengandalkan PHP-FPM (FastCGI Process Manager) untuk menangani eksekusi PHP.

1. Instal Nginx

sudo apt install -y nginx

2. Instal PHP-FPM untuk PHP 8.3

sudo apt install -y php8.3-fpm

3. Konfigurasi Nginx untuk PHP-FPM

Kita perlu mengedit file konfigurasi Nginx untuk situs Anda. Untuk contoh, kita akan mengedit konfigurasi default.

sudo nano /etc/nginx/sites-available/default

Cari bagian yang serupa dengan ini:

# pass PHP scripts to FastCGI server
#
#location ~ \.php$ {
#       include snippets/fastcgi-php.conf;
#       fastcgi_pass unix:/run/php/php8.3-fpm.sock;
#}

Uncomment bagian ini (hapus tanda #) dan pastikan fastcgi_pass mengarah ke socket PHP 8.3 FPM. Juga, tambahkan index.php ke daftar index files.

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    root /var/www/html;
    index index.php index.html index.htm index.nginx-debian.html;
    server_name _;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    # disable sending a version number in the "Server" header
    server_tokens off;
}

Simpan dan tutup file.

4. Restart Nginx dan PHP-FPM

sudo systemctl restart nginx

sudo systemctl restart php8.3-fpm

5. Tes Instalasi PHP dengan info.php

Buat file info.php di direktori root web server Nginx Anda (biasanya /var/www/html/):

sudo nano /var/www/html/info.php

Isi file tersebut dengan baris ini:

<?php
phpinfo();
?>

Simpan dan tutup file (Ctrl+X, Y, Enter).

Sekarang, buka browser Anda dan navigasikan ke http://your_server_ip_or_domain/info.php. Anda akan melihat halaman informasi PHP yang detail, mengkonfirmasi bahwa PHP 8.3 berhasil diinstal dan terintegrasi dengan Nginx melalui PHP-FPM.

Mengatur Versi PHP Default (Jika Ada Banyak Versi)

Jika Anda memiliki beberapa versi PHP yang terinstal (misalnya, PHP 7.4, 8.1, dan 8.3), Anda bisa mengatur versi default untuk CLI menggunakan perintah update-alternatives.

Untuk melihat versi PHP yang tersedia:

update-alternatives --config php

Anda akan melihat daftar versi PHP yang terinstal. Anda bisa memilih nomor yang sesuai dengan versi yang ingin Anda jadikan default.

Contoh: Untuk mengatur PHP 8.3 sebagai default:

sudo update-alternatives --set php /usr/bin/php8.3

Verifikasi lagi dengan php -v.

Pengalaman dan Pertimbangan Praktis

Sebagai seorang developer yang sering berkutat dengan server dan berbagai versi PHP, ada beberapa hal praktis yang perlu diingat saat mengimplementasikan PHP 8.x di Ubuntu 24.04.

Kapan Menggunakan PHP 8.x?

PHP 8.x, terutama 8.2 dan 8.3, membawa banyak peningkatan performa dan fitur baru yang sangat bermanfaat. Jika Anda memulai proyek baru atau aplikasi yang sudah kompatibel, menggunakan PHP 8.x adalah pilihan terbaik. Performa JIT compiler di PHP 8.0+ bisa memberikan peningkatan kecepatan yang signifikan untuk beban kerja CPU-intensif, dan fitur-fitur bahasa modern membuat kode lebih bersih dan aman. Namun, untuk aplikasi lama yang belum di-upgrade, pastikan untuk memeriksa kompatibilitasnya. Migrasi dari PHP 7.x ke 8.0 memiliki beberapa breaking changes yang perlu ditangani.

Performa dan Fitur Baru

Salah satu alasan kuat untuk beralih ke PHP 8.x adalah performanya. Selain JIT, ada juga optimasi internal lainnya. Fitur-fitur seperti Attributes, Constructor Property Promotion, Match Expression, Nullsafe Operator, Enums, dan Readonly Properties akan sangat meningkatkan pengalaman coding Anda dan membuat aplikasi lebih robust dan maintainable. Ini bukan hanya tentang kecepatan, tetapi juga tentang kualitas kode dan produktivitas developer.

Kompatibilitas Aplikasi Lama

Ini adalah salah satu tantangan terbesar. Jika Anda memiliki aplikasi warisan yang berjalan di PHP 7.x, terutama 7.2 atau di bawahnya, migrasi ke PHP 8.x bisa jadi rumit. Beberapa fungsi deprecated dihapus, dan beberapa perilaku diubah. Selalu uji aplikasi Anda secara menyeluruh di lingkungan staging sebelum deployment ke produksi. Alat seperti Rector atau PHPStan bisa sangat membantu dalam menganalisis kode dan mengidentifikasi area yang perlu diubah.

Memonitor Log Server

Setelah instalasi dan konfigurasi, kebiasaan yang tidak boleh dilupakan adalah memonitor log server. Log Nginx atau Apache (/var/log/nginx/error.log, /var/log/apache2/error.log) dan log PHP-FPM (misalnya /var/log/php8.3-fpm.log atau log sistem) akan memberikan informasi berharga jika terjadi masalah. Kesalahan konfigurasi, memori habis, atau waktu eksekusi skrip yang terlalu lama akan tercatat di sana. Saya seringkali menemukan masalah sepele yang bisa dipecahkan hanya dengan melihat log.

Resource yang Dibutuhkan

PHP 8.x umumnya lebih efisien dalam penggunaan memori dibandingkan versi sebelumnya, tapi ini sangat tergantung pada aplikasi Anda. Untuk lingkungan produksi, selalu perhitungkan kebutuhan RAM dan CPU server Anda. Jika Anda menjalankan banyak worker PHP-FPM atau aplikasi yang intensif, pastikan Anda memiliki cukup resource. Konfigurasi php.ini dan www.conf PHP-FPM perlu disesuaikan dengan spesifikasi server dan beban kerja Anda.

Masalah yang Sering Terjadi

Meskipun proses instalasi ini relatif lurus, terkadang developer mengalami beberapa masalah. Berikut adalah beberapa masalah umum dan cara mengatasinya:

1. PHP Tidak Berjalan Setelah Instalasi

  • Gejala: Halaman PHP menampilkan kode sumber alih-alih dieksekusi, atau Anda mendapatkan error 500/502.
  • Penyebab: Web server (Apache/Nginx) belum di-restart setelah menginstal modul PHP atau PHP-FPM belum di-restart/aktif. Atau, modul PHP untuk web server belum terinstal.
  • Solusi:
    • Untuk Apache: Pastikan libapache2-mod-php8.3 terinstal dan jalankan sudo systemctl restart apache2.
    • Untuk Nginx: Pastikan php8.3-fpm terinstal, konfigurasinya benar di /etc/nginx/sites-available/default (atau vhost Anda), dan jalankan sudo systemctl restart nginx dan sudo systemctl restart php8.3-fpm.
    • Periksa status service: sudo systemctl status apache2, sudo systemctl status nginx, sudo systemctl status php8.3-fpm.

2. “Module not found” Error

  • Gejala: Aplikasi Anda mengeluh bahwa modul PHP tertentu tidak ditemukan (misalnya, PDO, CURL, GD).
  • Penyebab: Modul PHP yang dibutuhkan tidak diinstal atau tidak diaktifkan.
  • Solusi:
    • Identifikasi modul yang hilang (misalnya, php8.3-curl).
    • Instal modul tersebut: sudo apt install -y php8.3-nama-modul.
    • Setelah instalasi, restart web server dan PHP-FPM (jika menggunakan Nginx) atau Apache (jika menggunakan Apache).

3. Error Memori Habis (Allowed Memory Size Exhauseted)

  • Gejala: Anda melihat pesan error seperti Fatal error: Allowed memory size of X bytes exhausted....
  • Penyebab: Skrip PHP Anda membutuhkan lebih banyak memori daripada yang diizinkan oleh konfigurasi memory_limit di php.ini.
  • Solusi:
    • Edit file php.ini. Lokasinya bisa berbeda, tapi umumnya di /etc/php/8.3/apache2/php.ini (untuk Apache) atau /etc/php/8.3/fpm/php.ini (untuk Nginx/FPM).
    • Cari baris memory_limit = 128M (atau nilai lainnya).
    • Ubah nilainya menjadi lebih besar, misalnya memory_limit = 256M atau 512M, sesuai kebutuhan aplikasi dan kapasitas server Anda.
    • Restart web server atau PHP-FPM setelah menyimpan perubahan.

4. PHP-FPM Socket Error

  • Gejala: Nginx menampilkan error 502 Bad Gateway dan log Nginx menunjukkan connect() to unix:/run/php/php8.3-fpm.sock failed (2: No such file or directory).
  • Penyebab: PHP-FPM tidak berjalan, atau konfigurasi Nginx menunjuk ke lokasi socket yang salah.
  • Solusi:
    • Pastikan PHP-FPM berjalan: sudo systemctl status php8.3-fpm. Jika tidak, mulai dengan sudo systemctl start php8.3-fpm.
    • Periksa lokasi socket di file konfigurasi Nginx Anda. Pastikan itu sesuai dengan lokasi default atau lokasi yang Anda tentukan di konfigurasi PHP-FPM (umumnya /etc/php/8.3/fpm/pool.d/www.conf). Defaultnya adalah unix:/run/php/php8.3-fpm.sock.

5. Permission Denied for PHP Scripts

  • Gejala: Halaman PHP menampilkan error 403 Forbidden atau “Permission Denied” saat diakses via web server.
  • Penyebab: Web server (Apache/Nginx) tidak memiliki izin baca untuk file atau direktori PHP Anda.
  • Solusi:
    • Pastikan user web server (biasanya www-data untuk Apache dan Nginx) memiliki izin yang benar.
    • Ubah kepemilikan direktori web Anda: sudo chown -R www-data:www-data /var/www/html (atau direktori root situs Anda).
    • Ubah izin file/direktori: sudo chmod -R 755 /var/www/html untuk direktori dan sudo chmod 644 /var/www/html/*.php untuk file PHP.
    • Restart web server.

FAQ

Apa itu PPA Ondrej?

PPA Ondrej Sury adalah Personal Package Archive yang dikelola oleh Ondrej Sury. Ia menyediakan paket-paket perangkat lunak terbaru untuk Ubuntu, khususnya versi PHP dan Nginx yang lebih baru daripada yang ada di repository resmi Ubuntu. Ini sangat populer di kalangan developer karena memungkinkan instalasi versi terbaru dengan mudah dan terkelola dengan baik.

Apakah saya perlu menghapus versi PHP lama?

Tidak selalu. Anda bisa memiliki beberapa versi PHP yang terinstal secara bersamaan. Ini berguna jika Anda mengelola proyek-proyek dengan kebutuhan versi PHP yang berbeda. Namun, untuk menghindari konflik atau kebingungan, biasanya disarankan untuk menghapus versi yang tidak lagi digunakan di lingkungan produksi. Anda bisa menggunakan sudo apt purge phpX.Y* untuk menghapus versi lama.

Bagaimana cara menginstal versi PHP tertentu selain 8.3?

Jika Anda perlu menginstal versi PHP lain seperti PHP 8.1 atau 8.2, setelah menambahkan PPA Ondrej Sury, Anda cukup mengganti php8.3 dengan versi yang Anda inginkan (misalnya, php8.1-cli atau php8.2-fpm) di semua perintah instalasi yang disebutkan di atas.

Apakah PHP 8.3 stabil untuk produksi?

Ya, PHP 8.3 adalah versi stabil dan direkomendasikan untuk lingkungan produksi. Setiap rilis minor PHP (misalnya, 8.3.1, 8.3.2) membawa perbaikan bug dan peningkatan stabilitas. Namun, selalu pastikan semua dependensi dan library aplikasi Anda juga kompatibel dengan PHP 8.3.

Kesimpulan

Menginstal PHP 8.3 di Ubuntu 24.04 menggunakan repository Ondrej PPA adalah cara yang efisien dan handal untuk mendapatkan lingkungan development yang modern dan berperforma tinggi. Dengan PHP 8.x, Anda tidak hanya mendapatkan peningkatan kecepatan yang signifikan, tetapi juga akses ke fitur-fitur bahasa baru yang akan membuat kode Anda lebih bersih, aman, dan mudah di-maintain.

Ingatlah untuk selalu melakukan update sistem, menginstal modul PHP yang relevan, dan mengkonfigurasi web server Anda dengan benar. Jangan lupa juga untuk memantau log dan menyesuaikan konfigurasi sesuai kebutuhan aplikasi dan kapasitas server Anda. Dengan panduan ini, Anda sekarang memiliki fondasi yang kokoh untuk membangun dan menjalankan aplikasi web modern di lingkungan Ubuntu 24.04 Anda.

TAGS: PHP, Ubuntu, 24.04, PHP 8, Instalasi PHP, Developer Tools, Web Development, Server Setup


Baca Juga

You May Also Like

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *