• Indonesian
  • English
  • Cara Update PHP di CloudLinux dengan yum groupupdate

    Kecepatan:

    Pendahuluan

    Minggu lalu saya dapat email dari client: “Website saya error setelah upgrade PHP dari cPanel. Yang muncul kosong — tidak ada error, tidak ada apa-apa. Cuma halaman putih.” Setelah saya cek, ternyata masalahnya bukan di kode website-nya, tapi di PHP version yang belum kompatibel dengan beberapa library yang dipakai. Client tersebut mengupgrade PHP dari versi 7.4 ke 8.2 menggunakan fitur cPanel, tapi tidak melakukan update pada versi Alt-PHP di CloudLinux terlebih dahulu. Akibatnya, PHP 8.2 yang aktif di cPanel tidak sesuai dengan library yang tersedia di server.

    Dari pengalaman itu, saya belajar satu hal penting: update PHP di CloudLinux itu harus dilakukan secara server-wide, bukan hanya dari cPanel. Kamu perlu update seluruh group Alt-PHP di server terlebih dahulu, baru kemudian mengizinkan user untuk mengupgrade versi PHP dari cPanel. Kalau kamu hanya update dari cPanel tanpa update Alt-PHP di server, kamu akan mendapatkan masalah seperti yang saya sebutkan di atas — white screen, error tak terduga, atau bahkan PHP crash.

    Di artikel ini saya akan tunjukkan cara update PHP di CloudLinux dengan benar menggunakan perintah yum groupupdate alt-php*, mulai dari persiapan sampai verifikasi. Semua command di bawah sudah saya pakai berkali-kali di production server dan terbukti aman.

    Apa Itu CloudLinux & Alt-PHP?

    Sebelum masuk ke command update, penting untuk memahami apa itu CloudLinux dan Alt-PHP.

    CloudLinux

    CloudLinux adalah sistem operasi berbasis CentOS/RHEL yang dirancang khusus untuk shared hosting. Fitur utamanya adalah LVE (Lightweight Virtual Environment) yang membatasi resource (CPU, RAM, I/O) per akun hosting. Ini mencegah satu website yang load-nya tinggi mempengaruhi website lain di server yang sama.

    Alt-PHP

    Alt-PHP (Alternatif PHP) adalah sistem PHP yang dikembangkan oleh CloudLinux untuk memberikan fleksibilitas lebih dalam mengelola versi PHP di server shared hosting. Dengan Alt-PHP, kamu bisa:

    • Menyediakan beberapa versi PHP secara bersamaan (PHP 5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2, 8.3)
    • Memungkinkan user memilih versi PHP dari cPanel
    • Memberikan isolasi PHP per akun — setiap akun bisa pakai versi PHP yang berbeda tanpa konflik
    • Mengatur PHP options (memory_limit, upload_max_filesize, dll) per versi

    Kenapa Harus Update Alt-PHP?

    Alt-PHP perlu di-update secara berkala karena:

    • Patch keamanan — setiap update Alt-PHP biasanya menyertakan patch keamanan untuk PHP versi tersebut
    • Bug fix — perbaikan bug yang bisa mempengaruhi stabilitas PHP
    • Versi PHP baru — CloudLinux sering menambahkan versi PHP baru (misalnya PHP 8.3) melalui update Alt-PHP
    • Kompatibilitas — update memastikan library dan ekstensi PHP tetap kompatibel dengan versi terbaru

    Persiapan Sebelum Update

    ⚠️ PERINGATAN KEAMANAN: Backup Dulu!

    Sebelum melakukan update Alt-PHP, WAJIB backup dulu. Meskipun update Alt-PHP jarang menyebabkan masalah, lebih baik waspada daripada menyesal.

    # Backup konfigurasi PHP yang ada
    cp -r /opt/alt/php* /tmp/backup-php-$(date +%Y%m%d-%H%M)/ 2>/dev/null
    
    # Backup konfigurasi php.ini untuk semua versi
    for ver in $(ls /opt/alt/ | grep php); do
      cp /opt/alt/$ver/etc/php.ini /tmp/backup-php-ini-$ver-$(date +%Y%m%d-%H%M).bak 2>/dev/null
    done
    
    # Backup list package yang terinstall
    rpm -qa | grep alt-php > /tmp/alt-php-packages-$(date +%Y%m%d-%H%M).txt

    Verifikasi backup berhasil:

    ls -lh /tmp/backup-php-*
    ls -lh /tmp/backup-php-ini-*
    wc -l /tmp/alt-php-packages-*.txt

    Periksa Versi PHP Saat Ini

    Sebelum update, catat versi PHP yang saat ini terinstall di server:

    # Cek versi PHP default server
    php -v
    
    # Cek versi Alt-PHP yang terinstall
    rpm -qa | grep alt-php | sort
    
    # Cek versi PHP yang tersedia di CloudLinux repo
    yum list available alt-php* | head -20

    Periksa Repository CloudLinux

    Pastikan repository CloudLinux aktif dan bisa diakses:

    # Cek status repository
    yum repolist | grep cloudlinux
    
    # Cek koneksi ke repository
    yum clean all
    yum makecache

    Jika repository tidak bisa diakses, update tidak akan berhasil. Pastikan license CloudLinux masih aktif dan server bisa terhubung ke repository CloudLinux.

    Command Update Alt-PHP

    Update Semua Versi PHP Sekaligus

    Command utama untuk update Alt-PHP di CloudLinux adalah:

    yum groupupdate alt-php*

    Command ini akan mengupdate semua group Alt-PHP yang terinstall di server — termasuk PHP 5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2, dan versi lain yang aktif di repository.

    Penjelasan Command

    1. yum — Package manager untuk Red Hat/CentOS/CloudLinux. Digunakan untuk menginstall, mengupdate, dan menghapus package di sistem.

    2. groupupdate — Perintah untuk mengupdate seluruh group package sekaligus. Berbeda dari yum update yang mengupdate per-package, groupupdate memastikan semua package dalam satu group diupdate secara konsisten.

    3. alt-php* — Wildcard untuk semua group Alt-PHP yang tersedia. Ini termasuk alt-php56, alt-php70, alt-php71, alt-php72, alt-php73, alt-php74, alt-php80, alt-php81, alt-php82, dan versi lain yang tersedia di repository CloudLinux.

    Contoh Output

    Loaded plugins: fastestmirror, rhnplugin, versionlock
    Loading mirror speeds from cached hostfile
    cloudlinux-x86_64-server-7          | 2.8 kB  00:00:00
    cloudlinux-x86_64-updates           | 2.9 kB  00:00:00
    Resolving Dependencies
    --> Running transaction check
    ---> Package alt-php74-php-common.x86_64 0:7.4.33-3.el7 will be updated
    ---> Package alt-php74-php-common.x86_64 0:7.4.33-4.el7 will be an update
    ---> Package alt-php80-php-common.x86_64 0:8.0.27-3.el7 will be updated
    ---> Package alt-php80-php-common.x86_64 0:8.0.28-1.el7 will be an update
    ---> Package alt-php81-php-common.x86_64 0:8.1.16-3.el7 will be updated
    ---> Package alt-php81-php-common.x86_64 0:8.1.17-1.el7 will be an update
    ---> Package alt-php82-php-common.x86_64 0:8.2.3-3.el7 will be updated
    ---> Package alt-php82-php-common.x86_64 0:8.2.4-1.el7 will be an update
    ...
    Complete!

    Dari output di atas, kita bisa lihat bahwa beberapa versi PHP diupdate: PHP 7.4 dari 7.4.33-3 ke 7.4.33-4, PHP 8.0 dari 8.0.27-3 ke 8.0.28-1, PHP 8.1 dari 8.1.16-3 ke 8.1.17-1, dan PHP 8.2 dari 8.2.3-3 ke 8.2.4-1.

    Update Versi PHP Tertentu Saja

    Jika kamu hanya ingin mengupdate versi PHP tertentu (misalnya hanya PHP 8.2), gunakan command ini:

    # Update hanya PHP 8.2
    yum groupupdate alt-php82
    
    # Update PHP 8.1 dan 8.2 saja
    yum groupupdate alt-php81 alt-php82

    Verifikasi Setelah Update

    Command #1: Cek Versi PHP Setelah Update

    Setelah update selesai, verifikasi bahwa update berhasil dengan mengecek versi PHP yang terinstall:

    # Cek versi PHP default server
    php -v
    
    # Cek semua versi Alt-PHP yang terinstall
    for ver in $(ls /opt/alt/ | grep php); do
      echo -n "$ver: "
      /opt/alt/$ver/bin/php -v | head -1
    done

    Contoh Output

    PHP 7.4.33 (cli) (built: Jan 13 2024 08:23:11) ( NTS )
    alt-php56: PHP 5.6.40 (cli) (built: Jan 10 2019 08:23:11) ( NTS )
    alt-php70: PHP 7.0.33 (cli) (built: Jan 10 2019 08:23:11) ( NTS )
    alt-php71: PHP 7.1.33 (cli) (built: Jan 13 2024 08:23:11) ( NTS )
    alt-php72: PHP 7.2.34 (cli) (built: Jan 13 2024 08:23:11) ( NTS )
    alt-php73: PHP 7.3.33 (cli) (built: Jan 13 2024 08:23:11) ( NTS )
    alt-php74: PHP 7.4.33 (cli) (built: Jan 13 2024 08:23:11) ( NTS )
    alt-php80: PHP 8.0.28 (cli) (built: Feb 14 2024 08:23:11) ( NTS )
    alt-php81: PHP 8.1.17 (cli) (built: Feb 14 2024 08:23:11) ( NTS )
    alt-php82: PHP 8.2.4 (cli) (built: Feb 14 2024 08:23:11) ( NTS )

    Perhatikan bahwa PHP 8.0, 8.1, dan 8.2 sudah diupdate ke versi terbaru (8.0.28, 8.1.17, 8.2.4). Versi lain (5.6, 7.0, 7.1, 7.2, 7.3, 7.4) tetap karena memang tidak ada update baru untuk versi-versi tersebut.

    Command #2: Cek Ekstensi PHP

    Verifikasi bahwa ekstensi PHP masih berfungsi setelah update:

    # Cek ekstensi yang terload
    php -m | sort
    
    # Cek ekstensi untuk versi PHP tertentu
    /opt/alt/php82/bin/php -m | sort

    Command #3: Test PHP Execution

    Jalankan test sederhana untuk memastikan PHP bisa mengeksekusi script:

    # Test PHP execution
    php -r "echo 'PHP is working! Version: ' . PHP_VERSION . PHP_EOL;"
    
    # Test untuk setiap versi Alt-PHP
    for ver in php74 php80 php81 php82; do
      echo -n "$ver: "
      /opt/alt/$ver/bin/php -r "echo PHP_VERSION;" 2>&1
      echo
    done

    Command #4: Restart Service

    Setelah update Alt-PHP, kamu perlu restart service yang menggunakan PHP agar perubahan diterapkan:

    # Restart LiteSpeed/LSAPI (jika menggunakan LiteSpeed)
    systemctl restart lsws
    
    # Atau restart PHP-FPM untuk setiap versi
    for ver in php74 php80 php81 php82; do
      systemctl restart lsphp$ver
    done
    
    # Restart Apache (jika menggunakan mod_php)
    systemctl restart httpd

    ⚠️ PENTING: Restart service production harus dilakukan dengan hati-hati. Pastikan:

    • Tidak ada deploy atau perubahan kode yang sedang berjalan
    • Client sudah diberi tahu jika ada kemungkinan downtime sesaat
    • Sudah ada backup konfigurasi sebelum restart

    Cara User Mengupgrade PHP dari cPanel

    Setelah Alt-PHP di server sudah di-update, user bisa mengupgrade versi PHP dari cPanel. Berikut langkah-langkahnya:

    Langkah 1: Buka cPanel → Select PHP Version

    Login ke cPanel, cari menu “Select PHP Version” atau “PHP Version Selector”. Menu ini biasanya ada di bagian “Software” atau “Programming”.

    Langkah 2: Pilih Versi PHP yang Diinginkan

    Pada halaman Select PHP Version, kamu akan melihat daftar versi PHP yang tersedia. Pilih versi PHP yang diinginkan (misalnya PHP 8.2) dan klik “Set as current” atau “Apply”.

    Langkah 3: Aktifkan Ekstensi yang Dibutuhkan

    Setelah memilih versi PHP, pastikan ekstensi yang dibutuhkan oleh website sudah aktif. Klik tab “Extensions” dan pastikan ekstensi seperti mysqli, pdo_mysql, gd, mbstring, curl, dan lainnya sudah aktif.

    Langkah 4: Test Website

    Setelah mengubah versi PHP, test website untuk memastikan tidak ada error. Buka website di browser dan cek apakah semua fitur berfungsi dengan baik.

    Troubleshooting: Update Gagal

    Masalah 1: Repository Tidak Bisa Diakses

    Jika update gagal karena repository tidak bisa diakses:

    # Cek koneksi ke repository
    yum clean all
    yum makecache
    
    # Cek status license CloudLinux
    cat /etc/cloudlinux-release
    
    # Jika masih gagal, cek DNS server
    cat /etc/resolv.conf

    Masalah 2: Konflik Package

    Jika update gagal karena konflik package:

    # Cek package yang conflicting
    yum groupupdate alt-php* 2>&1 | grep -i conflict
    
    # Update package yang conflicting terlebih dahulu
    yum update [nama-package-conflicting]
    
    # Jalankan update lagi
    yum groupupdate alt-php*

    Masalah 3: PHP Tidak Berfungsi Setelah Update

    Jika PHP tidak berfungsi setelah update (white screen, error, dll):

    # Cek error log
    tail -50 /var/log/lsphp82/error.log
    
    # Cek apakah PHP-FPM berjalan
    systemctl status lsphp82
    
    # Restart PHP-FPM
    systemctl restart lsphp82
    
    # Jika masih bermasalah, restore backup konfigurasi
    cp /tmp/backup-php-ini-php82-*.bak /opt/alt/php82/etc/php.ini

    Pro Tips: Pencegahan Masalah Update PHP

    1. Update di staging terlebih dahulu — jika memungkinkan, test update di server staging sebelum production. Ini mencegah masalah tak terduga di production.
    2. Baca changelog sebelum update — periksa apa yang berubah di versi terbaru. Kadang ada perubahan yang bisa mempengaruhi kompatibilitas.
    3. Update saat low traffic — jalankan update saat traffic server rendah (misalnya dini hari) untuk meminimalkan dampak ke user.
    4. Monitor error log setelah update — setelah update, monitor error log selama beberapa jam untuk memastikan tidak ada error baru yang muncul.
    5. Schedule update berkala — buat jadwal update Alt-PHP secara berkala (misalnya sebulan sekali) untuk memastikan server selalu menggunakan versi PHP terbaru dan aman.
    6. Gunakan yum versionlock — jika kamu tidak ingin mengupdate semua versi PHP sekaligus, gunakan yum versionlock untuk mengunci versi tertentu dan hanya mengupdate versi yang diinginkan.
    7. Backup sebelum update — selalu backup konfigurasi PHP sebelum update. Ini adalah langkah paling penting yang sering dilupakan.

    FAQ

    Apakah update Alt-PHP akan menghapus versi PHP yang sudah ada?

    Tidak. yum groupupdate alt-php* hanya mengupdate package yang sudah terinstall ke versi yang lebih baru. Versi PHP yang sudah ada tetap tersedia dan tidak akan dihapus. User bisa tetap menggunakan versi PHP lama dari cPanel.

    Apakah aman menjalankan yum groupupdate alt-php* di production?

    Ya, pada umumnya aman. Update Alt-PHP dirancang untuk backward compatible — tidak ada perubahan yang akan memecahkan kompatibilitas dengan versi lama. Tapi tetap disarankan untuk backup dulu dan test di staging jika memungkinkan.

    Bagaimana cara mengupdate hanya versi PHP tertentu?

    Gunakan yum groupupdate alt-php82 untuk mengupdate hanya PHP 8.2. Atau yum groupupdate alt-php81 alt-php82 untuk mengupdate PHP 8.1 dan 8.2. Wildcard alt-php* akan mengupdate semua versi sekaligus.

    Apakah user perlu melakukan sesuatu setelah server update Alt-PHP?

    Pada umumnya tidak. User tidak perlu melakukan apa-apa setelah server update Alt-PHP. Tapi jika user ingin mengupgrade versi PHP website mereka, mereka bisa melakukannya dari cPanel → Select PHP Version. Versi PHP yang tersedia di cPanel akan otomatis terupdate setelah server update Alt-PHP.

    Related Issues

    Kesimpulan

    Update PHP di CloudLinux menggunakan yum groupupdate alt-php* adalah langkah penting untuk menjaga keamanan dan performa server. Dengan update secara berkala, kamu memastikan bahwa semua versi PHP di server sudah menggunakan patch keamanan terbaru dan kompatibel dengan library terbaru.

    Yang teringat dari pengalaman saya: jangan pernah mengupgrade versi PHP dari cPanel tanpa update Alt-PHP di server terlebih dahulu. Karena kalau tidak, kamu akan mendapatkan masalah seperti white screen, error tak terduga, atau bahkan PHP crash. Selalu backup dulu, update Alt-PHP dengan yum groupupdate alt-php*, verifikasi update berhasil, baru kemudian izinkan user untuk mengupgrade dari cPanel. Lebih baik waspada daripada harus menjelaskan ke client kenapa website mereka error setelah upgrade PHP — percaya deh, saya pernah ngalamin dan tidak mau ngalamin lagi.