Versi PHP yang habis dukungannya tetap berjalan sempurna dan berhenti menerima perbaikan keamanan. Tak ada yang tampak rusak, dan itulah sebabnya banyak situs bertengger di sana bertahun-tahun - dan itu pula sebabnya versi PHP yang tua termasuk hal pertama yang diperiksa penyerang.
Dua peningkatan yang berbeda
- Rilis tambalan - 8.3.10 ke 8.3.11. Hanya perbaikan keamanan dan cacat, tanpa perubahan perilaku. Terapkan otomatis.
- Versi besar - 8.2 ke 8.3. Bisa menghapus perilaku usang yang disandari kode Anda. Yang ini perlu diperiksa dulu.
Otomatiskan rilis tambalannya
sudo apt-get install -y unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades
grep -A5 "Allowed-Origins" /etc/apt/apt.conf.d/50unattended-upgrades
Siapkan versi besar dengan benar
- Cari tahu apa yang rusak, secara statis —
vendor/bin/rector process --dry-runatauphpcs --standard=PHPCompatibility --runtime-set testVersion 8.3 - Pasang versi baru berdampingan dengan yang lama — keduanya boleh ada; hanya kolamnya yang menentukan mana yang berjalan.
- Arahkan lingkungan uji ke sana dan jalankan situsnya — pembayaran, unggahan, surel, tugas terjadwal.
- Pindahkan kolam produksinya, biarkan versi lama tetap terpasang — supaya kembali cukup satu baris dan satu muat ulang.
sudo apt-get install -y php8.3-fpm php8.3-mysql php8.3-mbstring php8.3-curl php8.3-xml
# nginx
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
sudo nginx -t && sudo systemctl reload nginx
Lalu periksa apa yang termuat, bukan apa yang terpasang
php -v # the CLI version
curl -sSI https://yourdomain.com | grep -i x-powered-by
php -m | sort # the modules the site actually has
Versi baris perintah dan versi web itu terpisah. Sebuah tugas terjadwal bisa berjalan dengan PHP 8.1 sementara situsnya berjalan dengan 8.3, dan ketidakcocokan itu muncul sebagai kegagalan yang hanya terjadi di malam hari.
Di hosting EGPHP, versinya berupa daftar pilihan dan rilis tambalan diterapkan untuk Anda, sementara versi sebelumnya tetap tersedia. Lihat meningkatkan versi PHP Anda.