PHP sürümümü 7'den 5.6'ya geri döndürmeye çalışıyorum ve PHP 7'yi kaldırıp PHP 5.6'yı yüklememe rağmen hala 7 sürümünü çalıştırıyor gibi görünüyorum.
Apache, phpMyAdmin ve benzerlerinin uygun şekilde yapılandırıldığı PHP sürümleri arasında geçiş yapmak için basit bir yöntem var mı?
PHP'nin mevcut sürümünü anında ve hatta siteden siteye değiştirmenin basit bir yolu harika olurdu.
Güncelleme
Bugün php7.0
apache modülünü devre dışı bırakmış olmama rağmen PHP 7'nin çalışmasıyla ilgili yine sorun yaşadım: phpinfo
fastCGI kullanarak php 7yi gösteriyordu ... ... Eğer aşağıdaki talimatları uyguladıktan sonra bu durumla karşılaşırsanız,
proxy_fcgi` apache modülünü devre dışı bırakmanız gerekebilir:
sudo a2dismod proxy_fcgi proxy; sudo service apache2 restart
1. PHP 5.6'yı Yeniden Yükleyin
Benim için işe yarayan şey şu kılavuzdu: http://www.lornajane.net/posts/2016/php-7-0-and-5-6-on-ubuntu
Aslında php7.0
ı kaldırmak gerekli değildir, php5.6'yı birlikte yükleyebilirsiniz (ayrıca php7.0 gerektiren phpmyadmin
paketi ile bağımlılık sorunu yaşarsınız)
Apache'de PHP'yi etkinleştirmek için `libapache2-mod-php'nin sizin için uygun bir yol olduğunu varsayarsak, bu şekilde devam edebilirsiniz:
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php7.0 php5.6 php5.6-mysql php-gettext php5.6-mbstring php-mbstring php7.0-mbstring php-xdebug libapache2-mod-php5.6 libapache2-mod-php7.0
2. PHP sürümünü değiştir:
php5.6'dan php7.0'a:
Apache:
sudo a2dismod php5.6 ; sudo a2enmod php7.0 ; sudo service apache2 restart
CLI:
sudo update-alternatives --set php /usr/bin/php7.0
php7.0'dan php5.6'ya:
Apache:
sudo a2dismod php7.0 ; sudo a2enmod php5.6 ; sudo service apache2 restart
CLI:
sudo update-alternatives --set php /usr/bin/php5.6
Sorunuzda önemli ayrıntılar eksik, bu nedenle daha geniş bir şekilde cevap vereceğim.
Paket kullandığınızı varsayarsak, bazı önemli ayrıntılar vardır:
Apache2, libapache2-mod-php7.0
paketi kullanılarak apache2
SAPI ya da mod_proxy_fcgi
ile php7.0-fpm
kullanılarak FPM SAPI kullanmak üzere yapılandırılabilir.
Ubuntu 16.04 depolarında sadece PHP 7.0 bulunmaktadır, benzer adlandırma şemasını kullanarak PHP 5.6 desteği eklemek için ppa:ondrej/php
kullanabilirsiniz (örneğin libapache2-mod-php5.6
veya php5.6-fpm
).
Apache2 SAPI (libapache2-mod-php*
) kullanıyorsanız, libapache2-mod-php5.6
yükledikten sonra a2dismod php7.0
çalıştırarak PHP 7.0'ı devre dışı bırakmanız ve a2enmod php5.6
çalıştırarak PHP 5.6'yı etkinleştirmeniz gerekir.
Eğer FPM SAPI (php*-fpm
) kullanıyorsanız, FPM unix soketini /run/php/php7.0-fpm.sock
yerine /run/php/php5.6-fpm.sock
olarak değiştirmeniz gerekir.
PHP ile birlikte gelen modüller için (MySQL gibi) adlandırma kuralının phpX.Y-<ext>
olduğunu lütfen unutmayın (örneğin php7.0-mysql
ve php5.6-mysql
), ancak harici PECL modülleri (örneğin APCu, mongodb, ...) için sadece php-<ext>
(örneğin php-apcu
, php-mongodb
). İnternette soru sormadan önce doğru paket adını aramak için sisteminizde apt-cache search php <ext>
komutunu çalıştırmanızı tavsiye ederim.
Bence php paketlerinizi kaldırmalı ve php5.6 yüklemelisiniz. Aşağıdaki şekilde devam edebilirsiniz:
sudo apt-get purge php7.*
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php5.6
Daha sonra emin olmak için php sürümünüzü kontrol edebilirsiniz. Aşağıda görüldüğü gibi yapılır:
php -v