Merhaba, bu yazılmda Pardus 21 altında (Debian Bullseye dahil) nasıl farklı PHP sürümleriyle çalışabileceğimizi kendi tecrübelerime göre anlatacağım.

Ubuntu altında PPA, Debian altında DPA kullanarak bu işin içinden çıkmak mümkün.

Öncelikli olarak depomuzu tanımlıyoruz.

sudo apt install apt-transport-https lsb-release ca-certificates
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg

Sonrasında şu komutu çalıştırıyoruz

sudo sh -c 'echo "deb https://packages.sury.org/php/ bullseye main" > /etc/apt/sources.list.d/php.list'

Depolarımızı güncelliyoruz.

sudo apt update

Komutları sırasıyla çalıştırdıktan sonra paket kurulumuna geçiyoruz. Temel paketleri kuruyoruz.

sudo apt install curl apache2

PHP 8.2 sürümünü kullanacaksam şu paketleri kuruyorum. Siz ihtiyaçlarınıza göre özelleştirebilirsiniz.

sudo apt install php-common libapache2-mod-php8.2 php8.2-cli php8.2-common php8.2-opcache php8.2-readline php8.2-curl php8.2-gd php8.2-imagick php8.2-intl php8.2-mbstring php8.2-mysql php8.2-xdebug php8.2-xml

PHP 8.1 sürümünü kullanacaksam şu paketleri kuruyorum.

sudo apt install php-common libapache2-mod-php8.1 php8.1-cli php8.1-common php8.1-opcache php8.1-readline php8.1-curl php8.1-gd php8.1-imagick php8.1-intl php8.1-mbstring php8.1-mysql php8.1-xdebug php8.1-xml

PHP 8.0 sürümünü kullanacaksam şu paketleri kuruyorum.

sudo apt install php-common libapache2-mod-php8.0 php8.0-cli php8.0-common php8.0-opcache php8.0-readline php8.0-curl php8.0-gd php8.0-imagick php8.0-intl php8.0-mbstring php8.0-mysql php8.0-xdebug php8.0-xml

PHP 7.4 sürümünü kullanacaksam şu paketleri kuruyorum.

sudo apt install php-common libapache2-mod-php7.4 php7.4-cli php7.4-common php7.4-opcache php7.4-readline php7.4-curl php7.4-gd php7.4-imagick php7.4-intl php7.4-mbstring php7.4-mysql php7.4-xdebug php7.4-xml

Daha önceki sürümleri de aynı mantık altında kurabilirsiniz.

Paketler kurulunca ssl, rewrite gibi kimi özellikleri etkinleştirmek gerekiyor, etkinleştiriyorum.

sudo a2enmod ssl rewrite suexec include

Sonrasında hata gösterimini aktif etmek için editör ile (ben gedit kullanıyorum) ini dosyamızı açıyoruz.

PHP 8.2 için ini dosyamızın yolu şöyle:

sudo gedit /etc/php/8.2/apache2/php.ini

PHP 8.1 için ise ini dosyamızın yolu şöyle:

sudo gedit /etc/php/8.1/apache2/php.ini

PHP 8.0 için ini dosyamızın yolu şöyle:

sudo gedit /etc/php/8.0/apache2/php.ini

PHP 7.4 için ini dosyamızın yolu şöyle:

sudo gedit /etc/php/7.4/apache2/php.ini

İni dosyasını ihtiyacıma göre düzenledikten sonra, ayarların etki etmesi için apache’yi yeniden başlatıyoruz.

sudo service apache2 restart

http://localhost/ adresine tıkladığımızda dosyalarımız görünüyorsa apache kurulmuş demektir.

Şimdi bir test dosyası oluşturup phpinfo() bakabiliriz.

Peki iyi hoş da yukardaki PHP sürümülerini kurduktan sonra aralarında nasıl geçiş yapacağız?

Aşağıdaki komut ile PHP sürümünü ayarlayabilirsiniz.

sudo update-alternatives --config php

Tabii tüm işlemin sonunda sunucuyu yeniden başlatmak da gerekecektir.

sudo service apache2 restart

PHP sürümünü uçbirimden görmek için komut satırını da kullanabilirsiniz.

php -v

Kaynakça: