📑 Daftar Isi
- EasyApache PHP dan Alt-PHP Itu Sebenarnya Apa?
- Perbedaan Paket dan Nama Binary
- Kenapa Ini Bisa Dua-duanya Aktif?
- Cara Cek PHP yang Sedang Aktif (Step-by-Step)
- Cara Pindah Versi PHP — EasyApache (MultiPHP Manager)
- Cara Pindah Versi PHP — Alt-PHP (PHP Selector)
- Perbedaan Konfigurasi: .htaccess vs .user.ini
- Manage Extension: ea-php vs alt-php
- IonCube dan Extension Tambahan
- Soal Performa: Mana yang Lebih Cepat?
- Kapan Pakai yang Mana?
- Tabel Troubleshooting
- FAQ
- Q: Boleh nggak dua-duanya (EasyApache PHP dan Alt-PHP) aktif bersamaan?
- Q: Mana yang lebih cepat, EasyApache PHP atau Alt-PHP?
- Q: Kenapa saya sudah set PHP 8.2 di MultiPHP Manager tapi web masih PHP 7.4?
- Q: Cara install ionCube di Alt-PHP gimana?
- Q: Kenapa php_value di .htaccess saya tidak jalan lagi?
EasyApache PHP vs Alt-PHP CloudLinux di cPanel — Panduan Lengkap Shared Hosting
Jam 1 subuh, notifikasi chat berdering. Client nanya sambil agak emosi, “Mas, kok web saya masih PHP 7.4 sih? Kan udah saya upgrade ke 8.2 lewat MultiPHP Manager.” Aku cek phpinfo di servernya, dan memang bener — halaman PHP 7.4. Padahal di WHM statusnya PHP 8.2 sudah aktif. Lha, piye iki? Kasus kayak gini bukan langka di shared hosting cPanel + CloudLinux, lho. Dan akar masalah-e hampir selalu balik ke satu hal: bingung antara EasyApache PHP dan Alt-PHP (PHP Selector).
Coba bayangin gini — server itu ibarat dapur restoran. Bahan makanannya sama, resepnya sama, tapi masaknya bisa pakai kompor gas atau kompor listrik. Hasil akhirnya beda tipis, tapi cara kerja dan perawatannya beda jauh. Nah, EasyApache PHP sama Alt-PHP itu dua “kompor” berbeda buat ngejalanin PHP di server cPanel CloudLinux. Salah nyalain kompor, ya masakannya gosong. Analoginya pas kan?
Sebelum lanjut, penting banget kita paham dulu: keduanya bukan cuma beda versi. EasyApache PHP adalah PHP yang dikompilasi oleh cPanel (paket ea-php56 sampai ea-php84), bisa jalan lewat handler DSO/mod_php atau PHP-FPM, dan dikontrol lewat MultiPHP Manager di WHM. Sedangkan Alt-PHP adalah PHP bawaan CloudLinux (paket alt-php71 sampai alt-php84) yang jalan lewat PHP-FPM dengan pool per user, dan dikontrol lewat PHP Selector di cPanel. Bedanya bukan cuma dari segi angka versi — beda stack, beda cara konfigurasi, beda cara install extension. Nah, di sinilah banyak orang tersesat.
Kenapa ini krusial buat kamu yang ngelola shared hosting? Karena dua sistem ini bisa aktif bersamaan di server yang sama. Coba tebak yang terjadi kalau kamu set PHP 8.2 di MultiPHP Manager, tapi di PHP Selector akun kamu masih nunjuk ke 7.4. Yang muncul di browser tetap 7.4, dan kamu menghabiskan waktu berjam-jam nyari “kenapa upgrade-nya gak jalan”. Belum lagi efek domino-nya: situs bisa kena PHP Error 500, ekstensi ionCube gagal dimuat, atau session login yang tiba-tiba logout sendiri padahal gak diapa-apain.
Oke, daripada makin bingung, mending kita bedah satu-satu biar tuntas. Di artikel ini aku bakal njelasin perbedaan detail antara EasyApache PHP dan Alt-PHP di shared hosting cPanel CloudLinux: arsitektur, handler, package, extension, cara cek versi yang aktif, plus tabel troubleshooting yang bisa kamu pakai pas ada masalah. Ini semua aku tulis dari pengalaman ngurusin ratusan server shared hosting tiap bulan, jadi yakinlah ini praktikal, bukan teori textbook. Monggo disimak pelan-pelan, lan nek ana sing nggak jelas, tinggal tanya di komentar.
EasyApache PHP dan Alt-PHP Itu Sebenarnya Apa?
Jadi ceritanya begini. cPanel itu panel yang bangun di atas Apache. Sejak zaman EasyApache 3 dulu, PHP selalu dikompilasi jadi bagian dari Apache (mod_php). Mau ganti versi PHP berarti rebuild Apache — makan waktu, bikin downtime, dan semua akun kena. Nah, di EasyApache 4 (EA4) ini diubah total. PHP sekarang jadi paket mandiri ber-awalan ea-php, misalnya ea-php80, ea-php81, ea-php82, ea-php83, ea-php84. Kamu bisa pasang beberapa versi sekaligus, dan tiap domain diarahkan ke versi tertentu lewat MultiPHP Manager tanpa harus rebuild Apache.
Di sisi lain, CloudLinux punya produk bernama PHP Selector. Ini sepenuhnya terpisah dari cPanel. CloudLinux nge-compile PHP sendiri dengan awalan paket alt-php, misalnya alt-php80-php, alt-php81-php, dst. Bedanya, PHP Selector ini jalan eksklusif lewat PHP-FPM dengan pool terpisah per user. User A bisa pilih PHP 8.2, user B pilih 7.4, keduanya jalan berdampingan tanpa saling mengganggu. Makanya CloudLinux jadi pilihan utama provider shared hosting — isolasi per user-nya rapi banget.
Sebenarnya Handler Itu Apa?
Kata “handler” ini sering bikin bingung. Sederhananya, handler adalah jembatan antara Apache dan PHP. Ada beberapa tipe:
- DSO / mod_php — PHP dimuat langsung ke dalam proses Apache. Cepat, tanpa proses ekstra, tapi kalau salah satu situs bikin fatal error, bisa bikin seluruh Apache kena imbas. Konfigurasi PHP-nya juga lebih global.
- suPHP — PHP jalan sebagai CGI dengan identitas user pemilik file. Aman dan terisolasi, tapi lebih lambat karena tiap request ada proses spawn.
- PHP-FPM — PHP jalan sebagai service terpisah dengan pool per user. Kombinasi terbaik antara kecepatan dan isolasi, plus bisa di-restart per user tanpa menyentuh Apache.
EasyApache PHP mendukung DSO dan PHP-FPM (dan suPHP di versi tertentu). Alt-PHP di sisi lain selalu PHP-FPM — dan di server LiteSpeed, PHP Selector pakai lsphp sebagai gantinya. Nah, dari sini aja udah kelihatan beda fundamental-nya.
Perbedaan Paket dan Nama Binary
| Aspek | EasyApache PHP | Alt-PHP (PHP Selector) |
|---|---|---|
| Developer | cPanel (bagian dari EasyApache 4) | CloudLinux (CloudLinux OS) |
| Prefix paket | ea-php82-php-*, ea-php81-php-* | alt-php82-php-*, alt-php81-php-* |
| Lokasi binary CLI | /opt/cpanel/ea-php82/root/usr/bin/php | /opt/alt/php82/usr/bin/php |
| Handler default | DSO/mod_php atau PHP-FPM (bisa dipilih) | PHP-FPM (atau lsphp di LiteSpeed) |
| Antarmuka kontrol | WHM → MultiPHP Manager / EasyApache 4 | cPanel → Select PHP Version / PHP Selector |
| Isolasi per user | Terbatas (bergantung handler) | Penuh (pool PHP-FPM per user) |
| Konfigurasi per user | Lewat MultiPHP INI Editor | Lewat Select PHP Version → .user.ini |
Yang perlu diingat: paket ea-php sama alt-php itu beda binary, beda php.ini, beda ekstensi. Nggak bisa saling nimpuk. Kalau kamu install extension di ea-php82, trus pindah ke alt-php82, extension-nya nggak otomatis kebawa. Ini yang paling sering bikin extension “hilang” setelah pindah versi — padahal cuma salah tempat.
Kenapa Ini Bisa Dua-duanya Aktif?
Nah, ini bagian yang paling menarik. Di server cPanel + CloudLinux, EA4 dan PHP Selector bisa dipasang bareng. Yang menentukan versi mana yang dipakai user adalah handler yang paling atas dalam urutan prioritas:
- CloudLinux PHP Selector (alt-php) — kalau user ini sudah punya pilihan versi di “Select PHP Version”, ini yang menang.
- MultiPHP Manager (ea-php) — dipakai kalau user belum di-cover PHP Selector.
- PHP versi global dari EasyApache 4 — fallback terakhir.
Jadi kebalikannya juga bisa: kamu set PHP 8.2 di MultiPHP Manager, tapi karena akun user tersebut ternyata sudah “terekam” di PHP Selector dengan versi 7.4, maka 7.4 yang jalan. Inilah persis kasus client di awal artikel tadi. Bukan bug, bukan server error — cuma prioritas handler yang salah paham.
Cara Cek PHP yang Sedang Aktif (Step-by-Step)
Oke, saiki kita masuk ke bagian praktis. Sebelum ubah apa-apa, kamu wajib tahu dulu PHP mana yang lagi jalan di web. Berikut langkah-langkah-nya:
Langkah 1 — Cek via phpinfo()
Bikin file kecil di document root akun yang bermasalah:
echo '<?php phpinfo(); ?>' > /home/username/public_html/info.php
Lalu buka https://domain.com/info.php di browser. Perhatikan tiga hal:
- PHP Version — versi yang benar-benar dipakai.
- Server API — kalau muncul “Apache 2.0 Handler” berarti DSO/mod_php (kemungkinan besar ea-php). Kalau “FPM/FastCGI” berarti PHP-FPM (bisa ea-php atau alt-php). Kalau “CGI/FastCGI” berarti suPHP.
- Loaded Configuration File — path php.ini yang dipakai. Path
/opt/alt/php82/etcmenandakan Alt-PHP; path/opt/cpanel/ea-php82/root/etcmenandakan EasyApache.
Jangan lupa hapus file info.php setelah selesai — ini file sensitif, jangan sampai ke-index sama Google.
Langkah 2 — Cek Handler dari Server
httpd -M | grep -i php
Output php_module (shared) menandakan mod_php aktif, dan biasanya versinya terlihat dari nama modul. Untuk cek service FPM yang jalan:
systemctl status alt-php82-php-fpm
systemctl status php-fpm82
Kalau alt-php82-php-fpm aktif, berarti Alt-PHP yang megang kendali. Kalau php-fpm82 (dari ea-php82) aktif, berarti PHP-FPM dari EasyApache.
Langkah 3 — Cek Paket Terpasang
rpm -qa | grep -E 'ea-php8|alt-php8'
Ini nunjukin versi mana saja yang sudah terpasang di kedua stack. Kalau kamu cuma lihat paket ea-php82 tapi nggak ada alt-php82, maka PHP Selector kemungkinan besar nggak dipakai untuk versi itu.
Cara Pindah Versi PHP — EasyApache (MultiPHP Manager)
Kalau kamu mau pakai PHP dari EasyApache:
- Login ke WHM → Software → MultiPHP Manager.
- Pilih domain atau system PHP version yang diinginkan.
- Klik Apply, tunggu sampai proses selesai.
Untuk memastikan PHP versi baru dipakai web, cek lagi via phpinfo(). Perhatikan juga handler-nya: di MultiPHP Manager kamu bisa pilih handler per domain (DSO, suPHP, atau PHP-FPM). Rekomendasi: pakai PHP-FPM buat situs produksi.
Cara Pindah Versi PHP — Alt-PHP (PHP Selector)
Sebaliknya, untuk pakai Alt-PHP via PHP Selector:
- Login ke cPanel akun user → Software → Select PHP Version.
- Pilih versi PHP yang diinginkan, lalu klik Set as current.
- Masih di halaman yang sama, klik tab Extensions untuk mengaktifkan/menonaktifkan ekstensi per user.
- Tab Options dipakai untuk menyetel nilai INI (memory_limit, upload_max_filesize, dll) tanpa perlu menyentuh php.ini global.
Setiap user punya file .user.ini yang otomatis digenerate di public_html. File inilah yang menyimpan konfigurasi per-user, dan nilainya menimpa php.ini global.
Perbedaan Konfigurasi: .htaccess vs .user.ini
Ini jebakan klasik. Saat pakai handler DSO/mod_php, kamu bisa menulis php_value memory_limit 256M di .htaccess. Tapi begitu handler diganti ke PHP-FPM (termasuk semua versi Alt-PHP), direktif php_value di .htaccess diam-diam diabaikan. Nggak muncul error, cuma nggak jalan. Solusi-nya: pindahkan konfigurasi ke .user.ini atau set lewat cPanel Select PHP Version → Options.
Contoh .user.ini:
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 66M
max_execution_time = 300
Setelah mengubah .user.ini, PHP-FPM kadang butuh reload:
systemctl reload alt-php82-php-fpm
Manage Extension: ea-php vs alt-php
Cara install extension di dua stack ini beda, walau sama-sama lewat yum/dnf:
Extension untuk EasyApache PHP
yum install ea-php82-php-mysqlnd ea-php82-php-gd ea-php82-php-intl
Setelah install, restart Apache (kalau pakai DSO) atau restart php-fpm82 (kalau pakai PHP-FPM):
/scripts/restartsrv_apache
Extension untuk Alt-PHP
yum install alt-php82-php-mysqlnd alt-php82-php-gd alt-php82-php-intl
Lalu restart FPM-nya:
systemctl restart alt-php82-php-fpm
IonCube dan Extension Tambahan
Banyak situs berbayar (misalnya script lisensi) butuh ionCube Loader. Di PHP Selector, tinggal buka Select PHP Version → Extensions, centang ionCube. Gampang banget. Di EasyApache, kamu perlu install paket-nya dulu:
yum install ea-php82-php-ioncube-loader
Setelah itu restart service sesuai stack. Kalau ionCube belum muncul di phpinfo padahal sudah diinstall, cek apakah versi PHP-nya masih didukung sama ionCube Loader (versi PHP terlalu baru kadang belum ada loadernya).
Soal Performa: Mana yang Lebih Cepat?
Kalau ditanya “mana yang lebih cepat”, jawabannya bukan soal versi, tapi soal handler. Alt-PHP yang jalan pakai PHP-FPM dengan OPCache per-user biasanya terasa lebih stabil dan hemat memori dibanding DSO/mod_php, terutama di server dengan banyak akun. Kenapa? Karena proses PHP-FPM bisa dibatasi (pool max_children), di-restart per user, dan nggak ikut “dibawa mati” saat Apache kena masalah.
DSO memang punya keunggulan latency rendah per-request (nggak ada proses tambahan), tapi dia makan resource Apache dan isolasi-nya lemah. Satu situs yang bocor memory bisa bikin tetangga-tetangganya ikut kena. Nah, di sinilah CloudLinux LVE (Lightweight Virtual Environment) berperan — dia membatasi resource per user, jadi efek domino-nya diminimalisir. Kalau kamu penasaran soal resource usage di server, cek artikel cara cek load average server dan membaca limit resource CloudLinux LVE biar makin paham konteks-nya.
Kapan Pakai yang Mana?
Sebagai NOC engineer, patokan saya sederhana:
- Pakai Alt-PHP (PHP Selector) kalau server-nya shared hosting dengan banyak user, butuh isolasi ketat, dan user perlu ubah versi PHP sendiri. Ini standar emas di hosting CloudLinux.
- Pakai EasyApache PHP kalau kebutuhan-nya spesifik (ekstensi khusus yang cuma ada di repo cPanel), atau kalau kamu butuh versi PHP tertentu yang belum tersedia di alt-php, atau server kamu VPS cPanel single-site yang nggak butuh isolasi per user.
Tabel Troubleshooting
| Gejala | Kemungkinan Penyebab | Cek | Solusi |
|---|---|---|---|
| phpinfo() beda dari setting WHM | PHP Selector nge-override MultiPHP Manager | cPanel → Select PHP Version | Set versi di PHP Selector sesuai keinginan, atau set ke versi yang sama dengan MultiPHP |
| Situs Error 500 setelah pindah versi | Extension yang dibutuhkan aplikasi belum terpasang di versi baru | Cek /var/log/apache2/error_log dan phpinfo() | Install extension sesuai stack (ea-phpXX-php-* atau alt-phpXX-php-*), restart service |
| Ekstensi hilang di phpinfo() | Extension terpasang di stack yang berbeda | rpm -qa | grep -E ‘ea-php|alt-php’ | Install extension di stack yang sedang aktif untuk user tersebut |
| Select PHP Version tidak muncul di cPanel | PHP Selector CloudLinux belum diinstall atau user di luar scope | Cek paket alt-php dan konfigurasi cloudlinux-selector | Install PHP Selector dari CloudLinux, pastikan user masuk scope selector |
| ionCube Loader not found | Loader belum dipasang di stack aktif | phpinfo() → ionCube Loader | Centang ionCube di PHP Selector, atau install ea-phpXX-php-ioncube-loader |
| php_value di .htaccess diabaikan | Handler PHP-FPM tidak membaca direktif .htaccess | Cek Server API di phpinfo() | Pindahkan pengaturan ke .user.ini |
| Session login tiba-tiba logout | Handler/pool berubah, session dir tidak konsisten | Perbandingan session.save_path antar versi | Samakan session.save_path atau biarkan default per stack, tes ulang login |
| CLI php -v beda dengan versi web | PATH mengarah ke binary stack lain | which php, /opt/cpanel/ea-php82/root/usr/bin/php -v, /opt/alt/php82/usr/bin/php -v | Panggil binary yang sesuai, atau alias-kan sesuai kebutuhan |
Table di atas aku rangkum dari kasus-kasus yang sering masuk ke meja kami. Kalau kamu mau paham lebih dalam soal error 500 di cPanel, baca juga cara fix Error 500 di cPanel step-by-step. Dan kalau server kamu sering kena masalah disk penuh yang bikin PHP error aneh-aneh, cek mengatasi disk full di cPanel juga. Buat yang fokus di PHP-FPM, artikel cek memory usage PHP-FPM bisa jadi lanjutan yang pas.
Ilustrasinya gini: bayangkan dua gerbong kereta. EasyApache itu gerbong yang nempel langsung ke lokomotif Apache — gerak bareng, tapi kalau gerbong satu bermasalah, bisa ngganggu lokomotif. Alt-PHP itu gerbong yang berdiri sendiri dengan remnya masing-masing — tiap penumpang bisa turun di stasiun yang beda tanpa ganggu yang lain. Kira-kira begitu gambaran simpelnya.
FAQ
Q: Boleh nggak dua-duanya (EasyApache PHP dan Alt-PHP) aktif bersamaan?
Boleh, bahkan itu yang umum terjadi di shared hosting CloudLinux. cPanel dan CloudLinux memang didesain untuk bisa jalan bareng. Yang penting kamu paham urutan prioritasnya: PHP Selector (alt-php) menang kalau user sudah punya pilihan versi di sana, baru MultiPHP Manager (ea-php).
Q: Mana yang lebih cepat, EasyApache PHP atau Alt-PHP?
Bukan soal merek-nya, tapi handler-nya. Alt-PHP selalu PHP-FPM, yang punya isolasi dan OPCache per-user. EasyApache bisa DSO (latency rendah tapi boros resource) atau PHP-FPM. Di server shared hosting multi-tenant, PHP-FPM (entah dari ea-php atau alt-php) umumnya lebih stabil dan aman.
Q: Kenapa saya sudah set PHP 8.2 di MultiPHP Manager tapi web masih PHP 7.4?
Kemungkinan besar akun tersebut sudah ter-cover PHP Selector dengan versi lama. Cek cPanel → Select PHP Version untuk user tersebut, set versi-nya ke 8.2 (atau versi yang sama dengan MultiPHP), lalu refresh phpinfo(). Jangan lupa clear cache browser / OPCache kalau perlu.
Q: Cara install ionCube di Alt-PHP gimana?
Di cPanel → Select PHP Version → tab Extensions, centang ionCube Loader, klik Save. Kalau pakai EasyApache, install lewat yum: yum install ea-php82-php-ioncube-loader, lalu restart service PHP-nya.
Q: Kenapa php_value di .htaccess saya tidak jalan lagi?
Karena handler kamu sudah PHP-FPM (atau suPHP), yang tidak membaca direktif php_value/php_flag dari .htaccess. Pindahkan konfigurasi ke file .user.ini di public_html, atau set lewat Select PHP Version → Options di cPanel.
Gimana, sekarang kebayang kan bedanya? Singkatnya: EasyApache PHP itu PHP buatan cPanel yang nempel sama ekosistem EasyApache 4, sedangkan Alt-PHP itu PHP buatan CloudLinux yang fokus ke isolasi per user lewat PHP-FPM. Kalau kamu lagi ada masalah “versi PHP tidak mau berubah”, cek dulu PHP Selector sebelum menyalahkan MultiPHP Manager — sembilan dari sepuluh kasus, biang keroknya ada di sana. Monggo dipraktekno step-by-step-nya di server sampeyan. Nek masih ada yang bikin pusing, drop pertanyaan di komentar — siapa tahu bisa bantu kanca-kanca lain yang ngalamin hal sama. Sip, mugi manfaat lan sukses selalu!