15%

Hemat 15% di Semua Layanan Hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode:

Skills
Memulai
04.01.2024

LiteSpeed Hosting dan Manajemen Versi PHP: Panduan Teknis Lengkap untuk Pengguna AlexHost

Memilih versi PHP yang tepat untuk lingkungan hosting Anda adalah salah satu keputusan paling penting dalam penerapan aplikasi web. Versi yang salah dapat secara diam-diam menurunkan performa, menimbulkan kerentanan keamanan, atau sepenuhnya merusak kompatibilitas framework. Shared hosting bertenaga LiteSpeed dari AlexHost mendukung PHP 7.3, 7.4, 8.0, dan 8.1 secara bersamaan, memungkinkan Anda menetapkan versi PHP berbeda per domain melalui MultiPHP Manager cPanel — tanpa menyentuh file konfigurasi server atau membuka tiket dukungan.

Panduan ini membahas apa yang sebenarnya diberikan oleh setiap versi PHP di tingkat engine, cara mengganti versi dengan benar pada infrastruktur AlexHost, dan cara menghindari kesalahan umum yang menyebabkan kegagalan aplikasi setelah perubahan versi.

Mengapa Pemilihan Versi PHP Lebih Penting dari yang Disadari Kebanyakan Developer

PHP bukan runtime monolitik. Setiap rilis mayor dan minor mengubah perilaku Zend Engine, menghapus fungsi-fungsi tertentu, mengubah aturan koersi tipe, dan memodifikasi cara OPcache dan compiler JIT berinteraksi dengan kode Anda. Menjalankan kode PHP 7.3 pada PHP 8.1 tanpa pengujian bukanlah upgrade yang aman — ini adalah perjudian dengan lingkungan produksi Anda.

LiteSpeed Web Server menangani eksekusi PHP melalui LSAPI (LiteSpeed Server Application Programming Interface), yang secara arsitektur berbeda dari mod_php atau FastCGI milik Apache. LSAPI mempertahankan proses worker PHP yang persisten, menghilangkan overhead pembuatan proses per-request yang membebani setup tradisional. Hasilnya adalah time-to-first-byte (TTFB) yang lebih rendah secara terukur dan siklus CPU per request yang jauh berkurang — sangat penting untuk aplikasi berbasis PHP seperti WordPress, Magento, atau Laravel.

Ketika Anda menggabungkan LSAPI LiteSpeed dengan MultiPHP Manager cPanel, Anda mendapatkan isolasi versi PHP per domain di tingkat proses, bukan hanya di tingkat konfigurasi. Ini adalah perbedaan penting bagi agensi atau developer yang menghosting beberapa situs klien dalam satu akun Shared Web Hosting.

Perbandingan Versi PHP: Matriks Fitur dan Keamanan

Fitur / AtributPHP 7.3PHP 7.4PHP 8.0PHP 8.1
Dukungan Keamanan ResmiBerakhir Des 2021Berakhir Nov 2022Berakhir Nov 2023Berakhir Nov 2024
Compiler JITTidakTidakYa (eksperimental)Ya (ditingkatkan)
Typed PropertiesTidakYaYaYa
Arrow FunctionsTidakYaYaYa
Union TypesTidakTidakYaYa
Named ArgumentsTidakTidakYaYa
Match ExpressionTidakTidakYaYa
Attributes (Annotations)TidakTidakYaYa
Enumerations (Enums)TidakTidakTidakYa
Fibers (Coroutines)TidakTidakTidakYa
Readonly PropertiesTidakTidakTidakYa
Intersection TypesTidakTidakTidakYa
Nullsafe OperatorTidakTidakYaYa
OPcache PreloadingTidakYaYaYa
Performa Relatif vs 7.3Baseline+~5-10%+~15-20%+~20-25%

Kesimpulan utama dari tabel ini: PHP 7.3 dan 7.4 telah melewati tanggal akhir dukungan resmi mereka. Keduanya hanya boleh digunakan ketika aplikasi legacy memiliki dependensi yang tidak dapat diselesaikan — bukan sebagai pilihan default untuk penerapan baru.

PHP 7.3: Stabilitas Legacy dengan Keterbatasan yang Diketahui

PHP 7.3 adalah rilis yang berfokus pada pemeliharaan yang memperkenalkan array_key_first(), array_key_last(), sintaks heredoc/nowdoc yang fleksibel, dan fungsi is_countable(). Versi ini merupakan platform stabil bagi aplikasi yang berjalan di PHP 5.x dan membutuhkan jalur migrasi tanpa refactoring yang agresif.

Realita operasional yang kritis: PHP 7.3 mencapai akhir masa pakainya pada Desember 2021. Versi ini tidak menerima patch keamanan dari proyek PHP. Menjalankannya di produksi berarti setiap kerentanan yang baru ditemukan pada Zend Engine atau ekstensi inti akan tetap tidak ditambal. Satu-satunya alasan sah untuk menggunakan PHP 7.3 di AlexHost saat ini adalah untuk mempertahankan aplikasi legacy sementara migrasi ke PHP 8.x sedang aktif berlangsung.

Kasus penggunaan umum: Instalasi Joomla 3.x yang lebih lama, aplikasi CodeIgniter 3 legacy, atau basis kode era PHP 5.6 kustom yang belum diperbarui untuk menggunakan deklarasi tipe modern.

PHP 7.4: Versi Terakhir dari Lini 7.x — Berguna untuk Penerapan Transisional

PHP 7.4 adalah rilis terakhir dalam cabang PHP 7 dan memperkenalkan beberapa fitur yang membuat kode jauh lebih mudah dipelihara dan lebih berperforma tanpa memerlukan perubahan yang merusak seperti yang hadir di PHP 8.0.

Typed class properties memungkinkan Anda menerapkan batasan tipe di tingkat kelas:

class User {
    public int $id;
    public string $email;
    public ?DateTime $lastLogin;
}

Ini menghilangkan seluruh kategori kesalahan runtime yang sebelumnya hanya muncul di jalur eksekusi tertentu.

Arrow functions mengurangi verbositas closure pendek, sangat berguna dalam operasi array:

$multiplied = array_map(fn($n) => $n * 2, $numbers);

OPcache preloading (diperkenalkan di 7.4) secara arsitektur signifikan: memungkinkan PHP memuat dan mengompilasi sekumpulan file ke dalam memori bersama saat server startup, membuat file-file tersebut tersedia bagi semua proses worker tanpa kompilasi berulang. Pada LiteSpeed dengan LSAPI, ini melipatgandakan manfaat performa karena worker persisten sudah menghindari overhead pembuatan proses.

PHP 7.4 mencapai akhir masa pakainya pada November 2022. Versi ini cocok untuk instalasi WordPress yang menjalankan plugin lama dengan ketidakkompatibilitas PHP 8.x yang diketahui, atau untuk penerapan Drupal 7 yang masih menunggu migrasi.

PHP 8.0: Titik Infleksi Arsitektur

PHP 8.0 bukan rilis inkremental. Versi ini memperkenalkan perubahan yang secara fundamental mengubah cara kode PHP ditulis, dieksekusi, dan dipahami. Beberapa perilaku yang sudah lama ada diubah atau dihapus, menjadikannya upgrade yang merusak bagi basis kode yang mengandalkan koersi tipe longgar atau fungsi yang sudah usang.

Kompilasi Just-In-Time

Compiler JIT dalam PHP 8.0 mengompilasi jalur kode yang sering digunakan ke kode mesin native saat runtime, melewati interpretasi berulang. Dalam beban kerja yang terikat CPU — komputasi matematis, pemrosesan gambar, pipeline transformasi data — JIT dapat memberikan peningkatan kecepatan yang substansial. Namun, untuk aplikasi web yang terikat I/O (query database, pembacaan file, panggilan API), manfaat JIT sering kali marginal karena bottleneck bukan pada eksekusi CPU melainkan menunggu sumber daya eksternal.

Memahami perbedaan ini mencegah kesalahan umum mengharapkan JIT secara otomatis mempercepat situs WordPress. Itu tidak akan terjadi — kecuali situs tersebut melakukan komputasi dalam proses yang signifikan.

Union Types dan Named Arguments

Union types memungkinkan parameter fungsi atau nilai kembalian menerima beberapa tipe secara eksplisit:

function processInput(int|string $input): int|false {
    // ...
}

Named arguments memisahkan urutan argumen dari tanda tangan fungsi, secara dramatis meningkatkan keterbacaan dalam fungsi dengan beberapa parameter opsional:

array_slice(array: $data, offset: 2, length: 5, preserve_keys: true);

Match Expression

Ekspresi match menggantikan switch dengan perbandingan tipe yang ketat, tanpa perilaku fall-through, dan kembalian berbasis ekspresi:

$status = match($code) {
    200, 201 => 'success',
    404 => 'not found',
    500 => 'server error',
    default => 'unknown',
};

Tidak seperti switch, match melempar UnhandledMatchError jika tidak ada arm yang cocok dan tidak ada default yang disediakan — membuat kegagalan diam-diam menjadi tidak mungkin.

Attributes (Metadata Terstruktur)

Attributes PHP 8.0 menggantikan anotasi docblock yang digunakan oleh framework seperti Doctrine dan Symfony. Mereka diurai oleh engine itu sendiri, bukan oleh regex userland:

#[Route('/api/users', methods: ['GET'])]
public function listUsers(): Response { ... }

Ini memiliki implikasi signifikan untuk performa framework dan akurasi tooling IDE.

PHP 8.1: PHP Modern Siap Produksi

PHP 8.1 adalah versi yang sebagian besar proyek baru harus targetkan saat ini. Versi ini dibangun di atas fondasi PHP 8.0 dan menambahkan fitur-fitur yang mengatasi kesenjangan lama dalam sistem tipe dan model konkurensi bahasa.

Enumerations

Enums memecahkan masalah “magic constant” yang menghantui basis kode PHP selama beberapa dekade:

enum Status: string {
    case Active = 'active';
    case Inactive = 'inactive';
    case Pending = 'pending';
}

Backed enums dapat disimpan dalam database dan diserialisasi dengan bersih. Pure enums menyediakan representasi status yang aman secara tipe tanpa kerapuhan konstanta kelas atau flag integer.

Fibers: Multitasking Kooperatif

Fibers memperkenalkan primitif konkurensi tingkat rendah ke PHP. Tidak seperti thread, Fibers bersifat kooperatif — mereka menyerahkan kontrol secara eksplisit. Ini adalah fondasi yang digunakan framework PHP async (seperti ReactPHP dan Amp) untuk mengimplementasikan I/O non-blocking tanpa memerlukan ekstensi seperti Swoole:

$fiber = new Fiber(function(): void {
    $value = Fiber::suspend('first suspension');
    echo "Resumed with: " . $value;
});

$value = $fiber->start();
$fiber->resume('hello');

Untuk aplikasi yang berjalan di VPS Hosting dengan kontrol penuh atas runtime PHP, Fibers membuka pintu untuk membangun aplikasi berbasis event-loop dalam PHP murni.

Readonly Properties

Readonly properties menerapkan immutabilitas setelah inisialisasi, yang penting untuk value object dan domain entity dalam arsitektur DDD (Domain-Driven Design):

class OrderId {
    public function __construct(
        public readonly string $value
    ) {}
}

Setelah ditetapkan dalam constructor, $value tidak dapat dimodifikasi. Setiap upaya akan melempar Error. Ini menghilangkan seluruh kelas boilerplate pemrograman defensif.

Intersection Types

Di mana union types mengatakan “ini ATAU itu,” intersection types mengatakan “ini DAN itu” — mengharuskan nilai untuk mengimplementasikan beberapa antarmuka secara bersamaan:

function processEntity(Serializable&Countable $entity): void { ... }

Ini sangat berharga dalam arsitektur service container dan middleware pipeline.

Cara Mengganti Versi PHP pada Hosting LiteSpeed AlexHost melalui cPanel

Lingkungan VPS dengan cPanel dan shared hosting AlexHost mengekspos manajemen versi PHP melalui MultiPHP Manager cPanel. Berikut adalah prosedur yang tepat:

Langkah 1: Akses Dashboard cPanel Anda

Masuk ke akun AlexHost Anda dan navigasikan ke bagian Login Details untuk mengambil kredensial cPanel Anda. Buka cPanel langsung melalui URL yang disediakan (biasanya yourdomain.com:2083 atau IP langsung dengan port).

Langkah 2: Navigasi ke MultiPHP Manager

Di dalam cPanel, temukan bagian Software. Klik MultiPHP Manager. Antarmuka ini mencantumkan semua domain dan subdomain yang terkait dengan akun Anda, masing-masing dengan versi PHP yang saat ini ditetapkan ditampilkan.

Langkah 3: Pilih Domain Target dan Versi PHP

Centang kotak di sebelah domain atau subdomain yang ingin Anda modifikasi. Gunakan dropdown PHP Version untuk memilih dari versi yang tersedia — PHP 7.3, 7.4, 8.0, atau 8.1 tergantung pada konfigurasi paket hosting Anda. Klik Apply.

Langkah 4: Verifikasi Perubahan

Setelah diterapkan, perubahan langsung berlaku untuk request baru. Verifikasi dengan membuat file phpinfo.php sementara di document root domain:

<?php phpinfo(); ?>

Konfirmasi versi PHP dalam output, lalu hapus file ini segera — membiarkan phpinfo() terekspos di produksi adalah kerentanan keamanan yang mengungkapkan konfigurasi server Anda kepada penyerang.

Langkah 5: Uji Fungsionalitas Aplikasi

Jangan berasumsi bahwa perubahan versi PHP aman tanpa pengujian. Periksa log error aplikasi Anda (/home/username/logs/ atau melalui alat Errors cPanel) untuk pemberitahuan deprecation, fatal error, atau panggilan fungsi yang tidak terdefinisi yang menunjukkan ketidakkompatibilitas.

Override Versi PHP Per-Direktori melalui .htaccess

Untuk kontrol yang lebih granular — misalnya, menjalankan subdirektori legacy pada PHP 7.4 sementara situs utama berjalan pada PHP 8.1 — Anda dapat mengganti versi PHP di tingkat direktori menggunakan .htaccess:

<FilesMatch ".php$">
    SetHandler application/x-httpd-ea-php81
</FilesMatch>

Format nama handler adalah application/x-httpd-ea-phpXX di mana XX sesuai dengan nomor versi tanpa titik desimal. Ini adalah konvensi EasyApache 4 yang digunakan dalam lingkungan cPanel.

Matriks Keputusan Pemilihan Versi PHP

SkenarioVersi PHP yang DirekomendasikanAlasan
Proyek Laravel 10+ atau Symfony 6+ baruPHP 8.1Membutuhkan minimal PHP 8.1; dukungan fitur penuh
WordPress 6.x (semua plugin diperbarui)PHP 8.1Rekomendasi resmi; peningkatan performa
WordPress dengan plugin legacy (sebelum 2022)PHP 7.4 atau 8.0Uji kompatibilitas sebelum upgrade
Magento 2.4.6+PHP 8.1Matriks dukungan resmi memerlukan 8.1
Drupal 10PHP 8.1Persyaratan minimum
Joomla 3.x legacyPHP 7.3 atau 7.4Joomla 3.x tidak sepenuhnya kompatibel dengan PHP 8.x
Aplikasi legacy kustom (sebelum 2018)PHP 7.3Migrasi sesegera mungkin
Microservice API baru atau alat CLIPHP 8.1Enums, Fibers, readonly properties tersedia

Implikasi Keamanan dari Menjalankan Versi PHP yang Sudah Melewati End-of-Life

Poin ini layak mendapat penekanan eksplisit. Versi PHP yang melewati tanggal end-of-life mereka tidak menerima patch keamanan dari proyek PHP. Ini berarti:

  • CVE yang ditemukan setelah EOL tidak ditambal dalam cabang versi yang terpengaruh.
  • Lingkungan shared hosting sangat rentan karena proses PHP yang dikompromikan berpotensi mempengaruhi akun tetangga tergantung pada konfigurasi isolasi.
  • Kepatuhan PCI DSS secara eksplisit melarang menjalankan perangkat lunak yang melewati tanggal akhir dukungan vendor. Jika Anda memproses pembayaran, menjalankan PHP 7.3 atau 7.4 adalah pelanggaran kepatuhan.
  • Web Application Firewalls (WAF) dapat mengurangi beberapa paparan, tetapi tidak dapat menambal kerentanan tingkat engine.

Jika Anda membutuhkan kontrol penuh atas lingkungan PHP Anda, jadwal patch keamanan, dan kemampuan untuk mengompilasi ekstensi PHP kustom, sebuah Dedicated Server memberi Anda isolasi dan akses administratif yang tidak dapat disediakan oleh lingkungan shared.

Pertimbangan Performa PHP Khusus LiteSpeed

Beberapa perilaku LiteSpeed berinteraksi dengan pemilihan versi PHP dengan cara yang tidak langsung terlihat:

LiteSpeed Cache (LSCache): Plugin LSCache untuk WordPress beroperasi di tingkat web server, bukan di tingkat PHP. Namun, tingkat hit OPcache yang ditingkatkan pada PHP 8.x berarti cache miss dilayani lebih cepat, mengurangi penalti performa dari request yang tidak di-cache.

Persistensi worker LSAPI: LiteSpeed menjaga worker PHP tetap hidup di antara request. Ini berarti compiler JIT PHP 8.1 memiliki lebih banyak kesempatan untuk warm up dan mengoptimalkan jalur kode yang sering digunakan dibandingkan dengan setup CGI tradisional di mana setiap request memulai proses yang dingin.

PHP-FPM vs. LSAPI: Pada VPS Control Panels di mana Anda mengonfigurasi stack sendiri, Anda dapat memilih antara PHP-FPM dan LSAPI. LSAPI secara konsisten mengungguli PHP-FPM dalam benchmark untuk lingkungan LiteSpeed karena menggunakan protokol komunikasi yang dibuat khusus daripada antarmuka generik FastCGI.

Batas memori dan jumlah worker: PHP 8.x memiliki jejak memori baseline yang sedikit lebih tinggi dari PHP 7.x karena struktur runtime tambahan untuk JIT dan sistem tipe. Jika Anda menjalankan lingkungan dengan memori terbatas, pantau pengaturan memory_limit setelah upgrade.

Daftar Periksa Praktis

Sebelum mengubah atau memilih versi PHP pada hosting LiteSpeed AlexHost Anda, kerjakan daftar periksa ini:

  • Periksa matriks kompatibilitas PHP resmi aplikasi Anda — jangan menebak. Laravel, WordPress, Magento, dan Drupal semuanya menerbitkan versi PHP minimum dan maksimum yang didukung.
  • Audit plugin dan ekstensi yang terinstal — kode pihak ketiga adalah sumber paling umum dari ketidakkompatibilitas PHP 8.x. Jalankan composer check-platform-reqs jika menggunakan Composer.
  • Lakukan perubahan di staging terlebih dahulu — gunakan subdomain atau lingkungan staging untuk menguji perubahan versi PHP sebelum menerapkannya ke produksi.
  • Tinjau log error segera setelah beralih — cari entri E_DEPRECATED, E_NOTICE, dan E_FATAL yang menunjukkan kompatibilitas yang rusak.
  • Hapus semua file phpinfo() yang dibuat selama verifikasi.
  • Jangan jalankan versi PHP EOL di produksi kecuali Anda memiliki rencana migrasi yang terdokumentasi dan terikat waktu serta kontrol keamanan kompensasi.
  • Gunakan MultiPHP INI Editor (juga di bagian Software cPanel) untuk menyetel direktif PHP per domain seperti memory_limit, upload_max_filesize, dan max_execution_time setelah perubahan versi — nilai default berbeda antar versi.
  • Jika aplikasi Anda memerlukan PHP 8.2 atau 8.3, pertimbangkan untuk upgrade ke paket VPS di mana Anda mengontrol seluruh software stack dan dapat menginstal versi PHP apa pun melalui repositori seperti Remi atau ondrej/php.

Pertanyaan yang Sering Diajukan

Bisakah saya menjalankan versi PHP berbeda pada domain yang berbeda dalam akun shared hosting AlexHost yang sama?

Ya. MultiPHP Manager cPanel menerapkan pengaturan versi PHP di tingkat per-domain. Setiap domain atau subdomain dalam akun Anda dapat menjalankan versi PHP yang berbeda secara independen, dikelola melalui antarmuka yang sama tanpa mempengaruhi domain lain.

Apakah mengganti versi PHP di MultiPHP Manager memerlukan restart server atau menyebabkan downtime?

Tidak. Perubahan langsung berlaku untuk request masuk yang baru. Proses PHP yang berjalan lama yang sudah ada mungkin terus berjalan pada versi lama hingga selesai, tetapi untuk request web biasa transisi ini mulus dan tidak menyebabkan downtime yang terukur.

Apakah compiler JIT PHP 8.1 secara otomatis mempercepat situs WordPress saya?

Tidak secara signifikan untuk penerapan WordPress standar. JIT memberikan manfaat pada beban kerja yang terikat CPU. Performa WordPress terutama dibatasi oleh waktu query database dan operasi I/O, yang tidak dipercepat oleh JIT. Peningkatan PHP 8.x yang lebih berdampak untuk WordPress adalah efisiensi OPcache yang lebih baik dan overhead pemanggilan fungsi yang berkurang.

Apa perbedaan antara MultiPHP Manager dan MultiPHP INI Editor di cPanel?

MultiPHP Manager mengontrol versi PHP mana yang ditetapkan ke setiap domain. MultiPHP INI Editor mengontrol direktif konfigurasi PHP (pengaturan php.ini) untuk setiap kombinasi domain dan versi PHP. Kedua alat diperlukan untuk manajemen lingkungan PHP yang lengkap — pemilihan versi saja tidak mengonfigurasi batas memori, batas waktu eksekusi, atau pemuatan ekstensi.

Apa yang harus saya lakukan jika aplikasi saya rusak setelah upgrade ke PHP 8.x?

Pertama, kembalikan ke versi PHP sebelumnya di MultiPHP Manager untuk memulihkan layanan. Kemudian periksa log error untuk pesan error yang spesifik. Masalah umum meliputi fungsi yang dihapus (each(), create_function()), perubahan perilaku koersi tipe, dan metode kelas bergaya constructor yang sudah usang. Atasi setiap masalah di lingkungan staging sebelum mencoba upgrade lagi. Jika aplikasi adalah CMS atau framework, periksa apakah versi yang diperbarui ada yang secara resmi mendukung PHP 8.x.

15%

Hemat 15% di Semua Layanan Hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode:

Skills
Memulai