İçeriğe geç

Komut Satırıyla PHP 7.4.3 Sürümünü PHP 8.x’e Yükseltme

Kategori: Veritabanı Sistemleri

Projeler büyüdükçe PHP 7.4.3 bazı noktalarda yetersiz kalmaya başlıyor ve php güvenlik tarafı da bu sürümde artık yeterli korumayı sağlayamıyor. Bu nedenle PHP 8.x daha stabil, daha hızlı ve php güvenlik güncellemelerini almaya devam ettiği için çok daha güvenli bir seçenek hâline geliyor.

Terminalde yapılacak basit bir güncelleme ve gerekli paketlerin eklenmesiyle geçişi kısa sürede tamamlayabiliriz.

Yükseltme Öncesi Sistem Gereksinimleri

Öncelikle dosya ve veritabanı yedeğini alarak başlayabiliriz. Ardından PHP’nin hangi uzantıları kullandığını hızlıca kontrol edelim.

php -m

Bu liste, 8.x tarafında hangi modülleri yeniden kurmamız gerektiğini gösteriyor. Son olarak log dosyalarına göz atmak da faydalı olur.

PHP sürümünü yükseltirken veritabanı tarafını da güncellemek isteyenler, özellikle SQLite kullanan projelerde, geçişi daha sağlıklı planlamak için SQLite Veritabanından MySQL’e Nasıl Geçilir başlıklı rehberimize de göz atabilir.

Ubuntu ve Debian Sistemlerde PHP 8.x Kurulumu

Bu adımlar özellikle Ubuntu 20.04 ve Debian tabanlı sistemlerde en çok kullanılan yöntemdir. Sistemde mevcut PHP sürümüne bakalım. Eğer terminal sonrası kontrolde PHP 7.4.3 görüyorsak devam edebiliriz.

php -v

PHP 8.x paketlerinin bulunduğu repoyu ekleyelim.

Ubuntu’da en güncel PHP paketleri Ondřej’in PPA deposunda yer alıyor. Bu depoyu sisteme ekleyerek başlayabiliriz.

sudo apt update
sudo apt install -y software-properties-common
sudo add-apt-repository ppa:ondrej/php
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 \
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-intl
sudo update-alternatives --config php

Apache veya Nginx Üzerinde PHP 8.x’e Geçiş

PHP’nin kurulması tek başına yeterli değil. Web sunucumuzun da yeni sürümü kullanmalıyız.

Eğer Apache kullanıyorsak

Önce eski PHP modülünü devre dışı bırakıp yeni modülü aktif hâle getirebiliriz.

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

Eğer Nginx + PHP-FPM kullanıyorsak

Nginx yapılandırmalarında genellikle aşağıdaki gibi bir satır bulunur

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.ini Ayarlarını Kontrol Edelim

PHP 7.4 ve 8.x sürümlerinin yapılandırma dizinleri farklı olduğu için bazı ayarların yeniden düzenlenmesi gerekebiliyor bunları kontrol edelim.

7.4 sürümündeki php.ini yolları

/etc/php/7.4/cli/php.ini<br>/etc/php/7.4/fpm/php.ini

8.2 sürümündeki yollar

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

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
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
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
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
sudo apt-get update
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.

İlk Yorumu Siz Yapın

Bir yanıt yazın

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