Veritabanı Sistemleri

      PHP 7.4.3’ten PHP 8.x’e Komut Satırıyla Geçiş

      PHP 7.4.3, kapsamlı projelerde hem hız hem de güvenlik bakımından artık yeterli düzeyde değil. Bu sürüme destek sona erdiği için güvenlik açıkları oluşabiliyor. PHP 8.x ise daha modern, daha performanslı ve aktif olarak güncellenmeye devam eden bir seçenek sunuyor.

      Geçişi sağlamak için terminalde birkaç komut çalıştırmak ve gerekli paketleri eklemek yeterlidir.

      Sistem Gereksinimleri

      İlk adım olarak dosya yapısını ve veritabanını yedekleyelim. Ardından sistemde aktif olan PHP uzantılarını görmek için şu komutu çalıştıralım:

      php -m

      Bu liste, PHP 8.x’e geçtikten sonra yeniden kurmamız gereken modülleri belirlememize yardımcı olur. Ek olarak, işlem öncesi log kayıtlarını incelemek fayda sağlar.

      Veritabanını da güncellemek isteyen geliştiriciler, özellikle SQLite kullanan projelerde geçiş adımlarını kontrollü biçimde uygulamalıdır.nlamak için SQLite Veritabanından MySQL’e Nasıl Geçilir başlıklı rehberimize de göz atabilir.

      Ubuntu ve Debian Tabanlı Sunucularda PHP 8.x’e Geçiş Hazırlığı

      Ubuntu 20.04 ve Debian sistemlerde PHP güncellemesi için en sık kullanılan yöntem bu rehberdeki adımlardır. Başlamadan önce mevcut PHP sürümünü doğrulayalım. Eğer terminalde 7.4.3 görünüyorsa ilerleyebiliriz.

      php -v

      Ardından PHP 8.x paketlerini içeren repoyu ekleyelim. Ubuntu kullanıcıları için en güncel paketlere Ondřej’in PPA deposu üzerinden ulaşılır, bu nedenle kuruluma bu depoyu tanımlayarak devam edelim.

      sudo apt update<br>sudo apt install -y software-properties-common<br>sudo add-apt-repository ppa:ondrej/php<br>sudo apt update

      PHP 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 \<br>php8.2 php8.2-cli php8.2-common php8.2-fpm \<br>php8.2-mysql php8.2-xml php8.2-gd php8.2-curl \<br>php8.2-mbstring php8.2-zip php8.2-intl
      sudo update-alternatives --config php

      PHP 8.x Sonrası Web Sunucu Ayarlarını Güncelleme

      PHP yükseltmesi sonrası Apache veya Nginx’in hâlâ eski sürümü kullanmaması için yapılandırma değişiklikleri yapılmalıdır.

      Apache kullanılıyorsa:

      Eski PHP modülünü devre dışı bırakıp yeni modülü aktifleştirelim ve Apache’yi yeniden başlatalım.

      sudo a2dismod php7.4<br>sudo a2enmod php8.2<br>sudo systemctl restart apache2

      Nginx + FPM kullanılıyorsa:

      Nginx konfigürasyonunda genelde aşağıdaki satır yer alı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 nginx

      PHP 7.4 ve PHP 8.x İçin Konfigürasyon Yollarını Karşılaştıralım

      PHP 7.4’ten PHP 8.x’e geçerken yapılandırma klasörleri değiştiği için bazı ayarların manuel olarak düzeltilmesi gerekir. Bu nedenle her iki sürümün php.ini dizinlerini kontrol edelim.

      PHP 7.4 php.ini dizinleri:

      /etc/php/7.4/cli/php.ini
      /etc/php/7.4/fpm/php.ini

      PHP 8.2 php.ini dizinleri:

      /etc/php/8.2/cli/php.ini
      /etc/php/8.2/fpm/php.ini

      Geçiş sonrasında özellikle memory_limit gibi ayarların yeni sürüme uygun biçimde düzenlendiğinden 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 -y

      Depolar 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 -y

      Son 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-curl

      Kurulumdan 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 httpd

      Sı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.3

      PPA’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.

      Hi, I’m Spesifik

      Bir yanıt yazın

      E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir