CLI Kullanarak PHP 7.4’ten PHP 8.x’e Güncelleme
Proje karmaşıklığı arttıkça PHP 7.4.3 performans sorunları ve güvenlik eksikleriyle kendini belli ediyor. Destek almaya devam eden PHP 8.x ise çok daha hızlı, stabil ve güvenlik açısından güçlü bir sürüm olarak öne çıkıyor.
Terminal üzerinden yapılacak temel güncelleme adımlarıyla bu yükseltme işlemi oldukça hızlı bir şekilde tamamlanabilir.
Yükseltme İçin Gereksinimler
Yükseltme işlemine başlamadan önce dosyaların ve veritabanının bir yedeğini alalım. Daha sonra PHP’nin aktif modüllerini görüntülemek için komutu çalıştıralım:
php -mBu çıktıda yer alan uzantılar, PHP 8.x kurulumunda yeniden kurulması gerekenleri gösterir. Hazırlık aşamasında log dosyalarını incelemek de önemli bilgiler sağlar.
Veritabanı tarafında değişiklik yapacak olanlar, özellikle SQLite kullanılan sistemlerde dikkatli bir geçiş planı uygulamalıdır.
PHP 8.x Geçişi İçin Ubuntu ve Debian Repo Belirleme
Bu yöntem, Ubuntu 20.04 ve Debian tabanlı dağıtımlarda PHP yükseltmek için en pratik çözümdür. İlk olarak sistemdeki PHP sürümünü kontrol edelim. Çıktıda PHP 7.4.3 görünüyorsa yükseltme işlemine geçebiliriz.
php -vPHP 8.x paketlerinin yer aldığı depoyu eklememiz gerekiyor. Ubuntu tarafında Ondřej’in PPA deposu en güncel paketleri sağlar, bu nedenle repo ekleyerek işlemi başlatabiliriz.
sudo apt update
sudo apt install -y software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt updatePHP 8.2’yi gerekli modüllerle kuralım
Aşağıdaki komutu eklediğimizde en sık kullanılan eklentilerle birlikte PHP 8.2 kurulmuş olur. Buradaki 8.2 sürümünü 8.1 veya 8.3 ile değiştirebiliriz.
sudo apt install -y \
php8.2 php8.2-cli php8.2-common php8.2-fpm \
php8.2-mysql php8.2-xml php8.2-gd php8.2-curl \
php8.2-mbstring php8.2-zip php8.2-intlsudo update-alternatives --config phpApache / Nginx Yapılandırmalarını PHP 8.x’e Taşımak
PHP 8.x kurulumu tamamlandıktan sonra web sunucumuzun da yeni sürüme geçmesi gerekir.
Apache için:
PHP 7.4 modülünü kapatalım, PHP 8.2 modülünü etkinleştirelim ve servisi yeniden başlatalım.
sudo a2dismod php7.4<br>sudo a2enmod php8.2<br>sudo systemctl restart apache2Nginx + FPM için:
Site yapılandırmalarında eski PHP-FPM soketi genelde şöyle görünür:
fastcgi_pass unix:/run/php/php7.4-fpm.sock;Bu satırı PHP 8.2 için şu şekilde güncelleyelim
fastcgi_pass unix:/run/php/php8.2-fpm.sock;Son olarak servisleri yeniden başlatalım
sudo systemctl restart php8.2-fpm<br>sudo systemctl restart nginxPHP.ini Dosyalarını Yeniden Düzenleyelim
PHP 7.4 ile PHP 8.x’in yapılandırma dizinleri farklı olduğu için bazı php.ini ayarlarının yeniden gözden geçirilmesi gerekir. Bu nedenle önce mevcut dizinleri kontrol edelim.
7.4 sürümünde kullanılan php.ini yolları:
/etc/php/7.4/cli/php.ini<br>/etc/php/7.4/fpm/php.ini8.2 sürümünde yer alan dizinler:
/etc/php/8.2/cli/php.ini
/etc/php/8.2/fpm/php.inPHP 8.x’e geçiş yaptıktan sonra özellikle memory_limit gibi kritik ayarların doğru şekilde taşındığından emin olalım.
RHEL, CentOS, AlmaLinux ve Rocky Linux İçin PHP 8.x Kurulumu
Bu dağıtımlarda PHP’nin en güncel sürümleri Remi deposu üzerinden geliyor. İşleme önce eski PHP paketlerini kaldırarak başlayabiliriz.
sudo dnf remove php*Ardından Remi deposunun kullanılabilmesi için EPEL ve Remi paketlerini ekleyelim.
sudo dnf install epel-release -y<br>sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm -yDepolar hazır olduğunda PHP modülünü PHP 8.2 sürümüne yönlendirebiliriz
sudo dnf module reset php -y<br>sudo dnf module enable php:remi-8.2 -ySon aşamada PHP 8.2 ve gerekli eklentileri kurduğumuzda işlem tamamlanmış oluruz
sudo dnf install -y php php-cli php-fpm php-mysqlnd php-xml php-gd php-mbstring php-intl php-zip php-curlKurulumdan sonra PHP-FPM ve web sunucusunu yeniden başlatarak yeni sürümü aktif hâle getirebiliriz.
sudo systemctl restart php-fpm<br>sudo systemctl restart httpdSık Sorulan Sorular
Ubuntu 20.04’te sudo apt install php8.3-fpm yazdım ama paket bulunamadı?
Bu paket ubuntu’nun varsayılan depoalarında yer almadığı için üçüncü taraf bir depo eklenmeli. Verdiğim terminal kodu ile bu yüklemeyi gerçekleştirelim ve kontrol sağlayalım.
sudo add-apt-repository ppa:ondrej/php<br>sudo apt-get update<br>sudo apt-get install php8.3PPA’yı ekledim ama yine 8.3 göremiyorum?
PPA eklendikten sonra paket listesi güncellenmeli. Ardından hangi PHP sürümlerinin listelendiğini görmek için apt-cache search php8 gibi bir komut çalıştırabilirsiniz.
Yükseltme sırasında veritabanı veya site içeriğini korumak için ne yapmalıyım?
Önce sistemin tam yedeklemesini mutalaka almalıyız. Eğer vps kullanılıyorsa snapshot almak da önemli. Böylece olası bir sorunda geri dönmek kolay olabilir.
