PHP di EGPHP

Semua yang kami bangun berawal dari PHP.

Tim kami telah menulis dan menjalankan PHP selama dua puluh lima tahun, sejak PHP 4. Server, panel kontrol, dan situs yang kami rawat semuanya berawal dari sini.

Berjalan di dan dibuat dengan
  • PHP
  • Laravel
  • NGINX
  • LiteSpeed
  • MySQL
  • MariaDB
  • PostgreSQL
  • Redis
  • Composer
Kredit logo

Dua puluh lima tahun, rilis demi rilis

Kami tidak sekadar membaca tentang versi-versi ini. Kami meng-upgrade situs sungguhan melewati setiap versinya, dan setiap baris di bawah ini adalah perubahan yang harus kami tangani di server yang sedang berjalan.

  1. PHP 4 2000

    Sesi dan output buffering, bawaan bahasa

    Zend Engine hadir, dan sesi serta output buffering menjadi bagian dari bahasa itu sendiri, bukan lagi tambahan. Satu generasi situs dinamis awal ditulis di atasnya.

    • Zend Engine
    • session_start()
    • ob_start()
    Artinya bagi kami

    Titik awal tim kami: situs yang ditulis tangan di server bersama, dengan register_globals masih aktif.

  2. PHP 5.0 2004

    Model objek yang sesungguhnya

    Zend Engine 2 menghadirkan kelas dengan visibilitas, interface, dan exception, objek yang diteruskan lewat handle alih-alih disalin, serta ekstensi MySQLi dan SimpleXML.

    • private
    • interface
    • try / catch
    • mysqli
    Artinya bagi kami

    Kode dapat disusun dalam kelas-kelas yang dipakai bersama oleh satu tim, dan basis data mendapat driver modern.

  3. PHP 5.3 2009

    Namespace dan closure

    Namespace, fungsi anonim, dan late static binding: fondasi yang kelak menjadi pijakan Composer dan ekosistem paket bersama.

    • namespace
    • function () use ()
    • static::
    Artinya bagi kami

    Pustaka dari penulis yang berbeda akhirnya bisa hidup dalam satu proyek tanpa nama-namanya saling bertabrakan.

  4. PHP 5.4 2012

    Trait, array singkat, dan bersih-bersih Merusak kode lama

    Trait, sintaks array singkat [], dan server pengembangan bawaan, sementara register_globals, magic quotes, dan safe mode dihapus untuk selamanya.

    • trait
    • [ ]
    • php -S
    Artinya bagi kami

    Situs lama yang bergantung pada register_globals berhenti berfungsi, dan meng-upgrade-nya berarti memperbaikinya lebih dulu.

  5. PHP 5.5 2013

    OPcache langsung tersedia

    OPcache disertakan bersama PHP dan menyimpan skrip yang telah dikompilasi di memori, bersama generator dan password_hash().

    • opcache
    • yield
    • password_hash()
    Artinya bagi kami

    Kode hasil kompilasi disimpan di memori, tidak dibaca ulang pada setiap permintaan. Sampai sekarang, inilah pengaturan pertama yang kami periksa di setiap server PHP.

  6. PHP 6 tak pernah dirilis

    Versi yang tak pernah dirilis

    PHP 6 direncanakan dengan string Unicode bawaan, lalu ditinggalkan. Rilis berikutnya diberi nomor 7 agar tidak tertukar dengan buku dan rencana yang sudah ditulis untuk versi 6.

  7. PHP 7.0 2015

    Lompatan kecepatan Merusak kode lama

    Mesin yang dibangun ulang, yang menurut proyek PHP hingga dua kali lebih cepat daripada 5.6 dengan memori lebih sedikit, ditambah deklarasi tipe skalar dan tipe kembalian, ?? dan <=>.

    • int $id
    • : string
    • ??
    • <=>
    Artinya bagi kami

    Fungsi mysql_* yang lama dihapus, salah satu penyebab tersering situs lama rusak pada upgrade ini.

  8. PHP 7.4 2019

    Properti bertipe dan preloading

    Properti bertipe, arrow function, operator ??=, preloading OPcache, dan FFI.

    • public int $id
    • fn ($x) =>
    • ??=
    Artinya bagi kami

    Rilis 7.x terakhir, dan versi yang paling lama dipertahankan oleh banyak aplikasi lama, itulah sebabnya kami masih memindahkan situs dari versi ini.

  9. PHP 8.0 2020

    JIT, atribut, dan argumen bernama Merusak kode lama

    Kompiler JIT, atribut, argumen bernama, union type, match, operator nullsafe ?->, dan constructor property promotion.

    • #[Attribute]
    • match
    • ?->
    • JIT
    Artinya bagi kami

    Banyak peringatan berubah menjadi error, dan perbandingan antara string dan angka berubah, sehingga kode yang berjalan tenang di 7.4 bisa berhenti di 8.0.

  10. PHP 8.1 2021

    Enum, readonly, dan fiber

    Enum bawaan, properti readonly, fiber, tipe kembalian never, dan sintaks first-class callable.

    • enum
    • readonly
    • Fiber
    • never
    Artinya bagi kami

    Fiber membuka jalan bagi pustaka PHP asinkron tanpa mengubah cara sebuah permintaan biasa dijalankan.

  11. PHP 8.2 2022

    Kelas readonly, dan peringatan untuk kode lama

    Kelas readonly, tipe DNF, true, false, dan null sebagai tipe mandiri, serta ekstensi Random yang baru.

    • readonly class
    • (A&B)|null
    • Random\Randomizer
    Artinya bagi kami

    Properti dinamis dinyatakan usang, dan plugin lama memenuhi log dengan pemberitahuan sampai diperbarui.

  12. PHP 8.3 2023

    Konstanta bertipe dan #[\Override]

    Konstanta kelas bertipe, atribut #[\Override], json_validate(), dan pengambilan konstanta kelas secara dinamis.

    • const string
    • #[\Override]
    • json_validate()
    Artinya bagi kami

    Rilis yang lebih tenang, sehingga menjadi langkah mudah bagi situs yang sudah berada di 8.2.

  13. PHP 8.4 2024

    Property hooks

    Property hooks, visibilitas asimetris, lazy objects, parser DOM yang memahami HTML5, dan new MyClass()->method() tanpa tanda kurung tambahan.

    • get { }
    • public private(set)
    • Dom\HTMLDocument
    Artinya bagi kami

    Getter dan setter yang dulu masing-masing memerlukan satu metode kini menjadi milik properti itu sendiri, sehingga kode yang perlu dirawat lebih sedikit.

  14. PHP 8.5 2025

    Operator pipe Terkini

    Operator pipe |>, ekstensi URI bawaan, clone with, atribut #[\NoDiscard], array_first() dan array_last(), serta backtrace pada fatal error.

    • |>
    • Uri\Rfc3986\Uri
    • clone($o, [ ])
    Artinya bagi kami

    Lini rilis terkini, dan versi yang kami gunakan untuk memulai situs baru bila kodenya mendukung.

Tahun yang tercantum adalah tahun rilis pertama setiap versi menurut riwayat rilis resmi proyek PHP.

Ikuti satu permintaan menembus tumpukan

Sebuah halaman di situs PHP melewati lima lapisan saat masuk, lalu naik kembali melalui lima lapisan yang sama saat keluar. Kami merawat semuanya, dan masing-masing punya halamannya sendiri.

  1. Pengunjung

    Browser meminta sebuah halaman melalui HTTPS. Sertifikat, firewall, dan aturan di depan server menentukan apakah permintaan itu boleh masuk atau tidak.

  2. Web server

    Nginx atau LiteSpeed menerima koneksi, menyajikan sendiri gambar dan berkas, dan hanya meneruskan pekerjaan PHP ke pool di belakangnya.

  3. Runtime PHP

    Pool PHP-FPM, satu per situs, masing-masing dengan versi PHP yang dibutuhkan kodenya, OPcache yang sudah hangat, dan worker yang disesuaikan dengan lalu lintasnya.

  4. Kode Anda

    Framework atau platform siap pakai mengubah permintaan menjadi halaman: aplikasi Laravel Anda sendiri, atau WordPress, Magento, Moodle, dan lainnya.

  5. Data

    MySQL atau MariaDB menyimpan catatan, dan Redis menyimpan di memori apa yang diminta berulang kali.

Di bawah kelimanya

Server itu sendiri

Server kami sendiri, dikelola oleh tim yang sama, dengan panel kontrol kami sendiri di atasnya.

Pindah ke PHP yang lebih baru tanpa pagi yang kacau

Setiap situs mendapat pool-nya sendiri, sehingga satu server dapat menjalankan beberapa versi PHP berdampingan, dan setiap situs pindah saat kodenya siap, bukan saat servernya siap.

  1. Kami mendata apa yang dijalankan setiap situs

    Versi PHP-nya, ekstensinya, serta plugin atau paket yang menahannya.

  2. Sebuah salinan mencoba versi baru

    Situs disalin dan dijalankan pada versi PHP berikutnya, lalu log error-nya dibaca baris demi baris.

  3. Kami memperbaiki yang rusak

    Fungsi yang dihapus, pemanggilan yang usang, dan plugin tanpa pembaruan diperbaiki atau diganti.

  4. Satu situs setiap kali

    Setiap situs beralih ke pool barunya sendiri-sendiri, dan dapat segera dikembalikan jika ada yang terlewat.

php-fpmSatu server, beberapa versi
SitusPHPPoolStatus
shop.example.com 8.4 fpm-shop aktif
blog.example.com 8.3 fpm-blog aktif
crm.example.com 7.4 → 8.3 fpm-crm di salinan
learn.example.com 8.3 fpm-learn aktif
Contoh sebuah server

Versi PHP mana yang masih mendapat perbaikan

Proyek PHP mendukung setiap cabang selama empat tahun: dua tahun perbaikan bug dan keamanan, lalu dua tahun perbaikan keamanan saja. Setelah itu tidak ada perbaikan sama sekali. Berikut kalender itu untuk versi-versi di halaman ini.

  • Perbaikan bug dan keamanan
  • Hanya perbaikan keamanan
  • Sudah melewati akhir masa dukungan
  • Hari ini
  1. PHP 7.4 Akhir masa dukungan

    Versi yang paling lama dipakai banyak aplikasi lama.

    Dirilis
    2019-11-28
    Akhir masa dukungan
    2022-11-28
  2. PHP 8.0 Akhir masa dukungan
    Dirilis
    2020-11-26
    Akhir masa dukungan
    2023-11-26
  3. PHP 8.1 Akhir masa dukungan
    Dirilis
    2021-11-25
    Akhir masa dukungan
    2025-12-31
  4. PHP 8.2 Hanya perbaikan keamanan
    Dirilis
    2022-12-08
    Perbaikan bug sampai
    2024-12-31
    Perbaikan keamanan sampai
    2026-12-31
  5. PHP 8.3 Hanya perbaikan keamanan
    Dirilis
    2023-11-23
    Perbaikan bug sampai
    2025-12-31
    Perbaikan keamanan sampai
    2027-12-31
  6. PHP 8.4 Dukungan aktif

    Berjalan di hosting kami, dengan OPcache dan JIT aktif.

    Dirilis
    2024-11-21
    Perbaikan bug sampai
    2026-12-31
    Perbaikan keamanan sampai
    2028-12-31
  7. PHP 8.5 Dukungan aktif

    Tempat kami memulai situs baru saat kodenya mendukung.

    Dirilis
    2025-11-20
    Perbaikan bug sampai
    2027-12-31
    Perbaikan keamanan sampai
    2029-12-31

Tanggal berasal dari proyek PHP sendiri, dari halaman versi yang didukung dan akhir masa dukungannya, diperiksa pada 2026-09-29. php.net/supported-versions.php

Tumpukan PHP, kemampuan demi kemampuan

Semua yang ada di peta ini dijelaskan di halaman lain situs ini. Setiap kartu menautkan ke halaman yang menjelaskannya lengkap.

Runtime

Cara PHP sendiri dijalankan untuk setiap situs.

  • Satu pool per situs

    Setiap situs punya pool PHP-FPM sendiri, sehingga versi, batas, dan worker-nya hanya milik situs itu.

    Performa PHP
  • Versi PHP per situs

    Dipilih untuk setiap situs dari panel EGPNL, sehingga satu server bisa menjalankan beberapa versi berdampingan.

    Panel kontrol EGPNL
  • OPcache

    Skrip terkompilasi disimpan di memori bersama, disesuaikan dengan situs, dengan rasio hit dibaca untuk memastikan tidak ada yang terbuang.

    Performa PHP
  • JIT

    Mengubah kode yang sering dijalankan menjadi kode mesin. Membantu pekerjaan yang berat di prosesor dan hanya sedikit mengubah situs biasa yang menunggu basis datanya.

    Performa PHP
  • Preloading

    Untuk framework, berkas intinya dimuat sekali saat mulai dan dijaga siap. Restart adalah bagian dari deploy.

    Performa PHP

Alat

Yang bisa Anda pakai di baris perintah dan di latar belakang.

  • Composer

    Dukungan Composer penuh, dengan autoloader yang dioptimalkan dan tanpa paket pengembangan di server.

    Hosting
  • Worker antrean di latar belakang

    Worker antrean berjalan di bawah Supervisor, sehingga pekerjaan yang lambat tidak mengganggu halaman yang sedang ditunggu pengunjung.

    Hosting
  • Akses shell

    Akses SSH untuk Composer dan pekerjaan baris perintah lain pada aplikasi PHP.

    Hosting
  • WP-CLI dan Drush

    WP-CLI sudah terpasang untuk WordPress; Drupal dipasang dan diperbarui dengan Composer dan Drush.

    Platform PHP

Ekstensi dan cache

Modul yang dimuat PHP dan cache memori di sampingnya.

  • Ekstensi yang kami kelola untuk Anda

    Dipasang dan diaktifkan per situs dari panel, tanpa lewat tiket dukungan.

    Mengapa PHP
  • ionCube Loader

    Dipasang di tempat platform membutuhkannya untuk menjalankan kode yang dienkode, seperti WHMCS.

    Platform PHP
  • APCu

    Cache di memori untuk nilai PHP, dipakai bersama Redis untuk caching dan penguncian berkas pada platform seperti Nextcloud.

    Platform PHP
  • Redis

    Cache, sesi, antrean, dan kunci disimpan di memori, pada Redis yang tidak bisa dijangkau dari internet.

    Basis data

Data dan web server

Tempat data disimpan dan yang menjawab pengunjung.

  • MySQL dan MariaDB

    Tabel InnoDB yang dikelola dengan phpMyAdmin di hosting; dipasang, disetel, dan dipantau di server terkelola.

    Basis data
  • PostgreSQL

    Dipasang dan disetel di tempat aplikasi memerlukannya, seperti akuntansi, ERP, dan laporan.

    Basis data
  • Nginx atau LiteSpeed

    Menyajikan gambar dan berkas sendiri dan hanya meneruskan pekerjaan PHP ke pool di belakangnya.

    Mengapa Nginx
  • HTTP/2 melalui TLS

    Halaman disajikan lewat HTTP/2 dengan TLS, dan sertifikat Let's Encrypt dipasang serta diperbarui otomatis.

    Hosting

Bawa PHP Anda kepada kami

Situs lama yang membutuhkan PHP lebih baru, platform yang perlu dipasang, atau server untuk menjalankan semuanya. Setiap pekerjaan diberi penawaran harga setelah percakapan singkat.

MickeyMenjawab dalam hitungan detik