На этот вопрос уже есть ответ здесь:
Я пытаюсь вернуть свою версию PHP к 5.6 из 7, и хотя я удалил PHP 7, а затем установил PHP 5.6, похоже, что я все еще использую версию 7.
Есть ли простой способ перехода между версиями PHP, в которых apache, phpMyAdmin и co настроены соответствующим образом?
A простой способ изменить текущую версию PHP на лету и даже сайт за сайтом было бы здорово.
Обновление
Сегодня я получил снова проблему с PHP 7, работающим несмотря на, я отключил php7.0
апачский модуль: phpinfo
показывал php 7 с помощью fastCGI...
... Таким образом, если после того, как Вы следуете ниже инструкций, Вы сталкиваетесь с этой ситуацией, Вы, возможно, должны отключить proxy_fcgi
апачский модуль:
sudo a2dismod proxy_fcgi proxy; sudo service apache2 restart
1. Переустановите PHP 5.6
То, что работало на меня, было этим руководством: http://www.lornajane.net/posts/2016/php-7-0-and-5-6-on-ubuntu
На самом деле не требуется, чтобы удалять php7.0
, можно установить php5.6 вместе (также, потому что у Вас будет проблема зависимости с phpmyadmin
пакет, который потребовал php7.0),
Принятие libapache2-mod-php
подходящий путь состоит в том, чтобы включить PHP в Apache для Вас, можно продолжить двигаться таким образом:
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:
От php5.6 до php7.0:
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 до php5.6:
Apache:
sudo a2dismod php7.0 ; sudo a2enmod php5.6 ; sudo service apache2 restart
CLI:
sudo update-alternatives --set php /usr/bin/php5.6
Ubuntu 16.04 идет php 7.0
, и некоторые php
приложения могли бы все еще перестать работать с php 7.0
.Therefore, в некоторых случаях, могло бы быть разумно иметь обоих php 7.0
и php 5.x
, так, чтобы можно было выбрать который версия использовать для потребностей в любое время.
Можно сделать так с:
xavi@computer# sudo su
root@computer# add-apt-repository ppa:ondrej/php
root@computer# apt-get update
root@computer# apt-get install php7.0 php5.6 php5.6-mysql php-gettext php5.6-mbstring php-xdebug libapache2-mod-php5.6 libapache2-mod-php7.0 php5.6-curl php5.6-gd php5.6-mcrypt php5.6-xml php5.6-xmlrpc
Установка обоих php5.6 & php7.0
было чистым в моем случае: нет жалуйтесь на проблемы и т.д.
Переключаться от php 5.6
кому: php 7.0
необходимо сделать две вещи:
# For php in web apps
sudo a2dismod php5.6 && sudo a2enmod php7.0 && sudo service apache2 restart
# For php-cli in the command line
sudo ln -sfn /usr/bin/php7.0 /etc/alternatives/php
или от php7.0 до php5.6:
# For php in web apps
sudo a2dismod php7.0 && sudo a2enmod php5.6 && sudo service apache2 restart
# For php-cli in the command line
sudo ln -sfn /usr/bin/php5.6 /etc/alternatives/php
Можно также быстро проверить, который Ваш использует путем выполнения php-v.
Ваш вопрос испытывает недостаток в важных деталях, таким образом, я отвечу более широко.
Принятие Вас использует пакеты, существуют некоторые важные детали:
Apache2 может быть настроен для использования также apache2
Использование SAPI libapache2-mod-php7.0
пакет или использование SAPI FPM php7.0-fpm
с mod_proxy_fcgi
.
Ubuntu 16.04 имеет только PHP 7.0 в репозиториях, можно использовать ppa:ondrej/php
добавить поддержку PHP 5.6 с помощью подобной схемы именования (например. libapache2-mod-php5.6
или php5.6-fpm
).
Если Вы используете Apache2 SAPI (libapache2-mod-php*
), необходимо отключить PHP 7.0 после установки libapache2-mod-php5.6
путем выполнения a2dismod php7.0
и включите PHP 5.6 путем выполнения a2enmod php5.6
.
Если Вы используете SAPI FPM (php*-fpm
) затем необходимо изменить сокет Unix FPM от /run/php/php7.0-fpm.sock
кому: /run/php/php5.6-fpm.sock
.
Помните, что для модулей, связанных PHP (как MySQL), соглашение о присвоении имен phpX.Y-<ext>
(f.e. php7.0-mysql
и php5.6-mysql
), но для внешних модулей PECL (f.e. APCu, mongodb...) это справедливо php-<ext>
(f.e. php-apcu
, php-mongodb
). Я рекомендую работать apt-cache search php <ext>
в Вашей системе для поиска корректного имени пакета прежде, чем задать вопросы в Интернете.
Я думаю, что необходимо удалить php пакеты и установить php5.6. Можно продолжить двигаться следующим образом:
sudo apt-get purge php7.*
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php5.6
можно затем проверить версию php, чтобы быть уверенными. Это сделано, как замечено ниже:
php -v