Как я могу отказаться от PHP 7 до PHP 5.6 на Ubuntu 16.04? [Дубликат]

Вы пытались добавить параметр _netdev к своей записи fstab? Вы добавили бы его с другими параметрами в своей строке, так что

//192.168.0.26/mythtv/media  /media/mybooklive  cifs  username=user,password=pass,_netdev,umask=002,uid=136,gid=144,iocharset=utf8   0       0

_netdev должен задерживать монтировку до тех пор, пока сеть не подключится.

1
задан 26 April 2016 в 00:24

3 ответа

Ubuntu 16.04 поставляется с php 7.0, а некоторые php приложения могут по-прежнему терпеть неудачу с php 7.0. Поэтому в некоторых случаях было бы разумно иметь как 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: [!d4 ]

# 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.

48
ответ дан 23 May 2018 в 11:51
  • 1
    Используйте sudo a2dismod php7.0 && sudo a2enmod php5.6 && sudo service apache2 restart, чтобы удостовериться, что следующие команды выполняются только тогда, когда они выполняются раньше. Предлагается отредактировать этот ответ. – Videonauth 2 May 2016 в 13:30
  • 2
    Это лучший ответ для тех, кто хочет установить как php5.6, так и php7.0 на ubuntu 16.04 – Amine Jallouli 14 May 2016 в 14:26
  • 3
    Потрясающие! Это сработало! – PJunior 7 July 2016 в 00:55
  • 4
    Работал как шарм. Хотелось бы, чтобы я мог его продвигать несколько раз. – shiva 30 September 2016 в 23:32

В вашем вопросе не хватает важных деталей, поэтому я отвечу более широко.

Предполагая, что вы используете пакеты, есть несколько важных деталей:

Apache2 может быть настроен для использования либо [ f1] SAPI с использованием пакета libapache2-mod-php7.0 или FPM SAPI с использованием 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. Если вы используете FPM SAPI (php*-fpm), вам необходимо сменить сокет FPM unix с /run/php/php7.0-fpm.sock на /run/php/php5.6-fpm.sock. Помните, что для модулей, поставляемых с PHP (например, MySQL), соглашение об именах phpX.Y-<ext> (fe php7.0-mysql и php5.6-mysql), но для внешних модулей PECL (fe APCu, mongodb, ...) это просто php-<ext> (fe php-apcu, php-mongodb). Я рекомендую запустить apt-cache search php <ext> в вашей системе для поиска правильного имени пакета, прежде чем задавать вопросы в Интернете.
11
ответ дан 23 May 2018 в 11:51
  • 1
    Можете ли вы немного рассказать о том, как изменить сокет Unix FPM? – myol 14 June 2016 в 16:48

Я думаю, вы должны удалить свои php-пакеты и установить php5.6. Вы можете действовать следующим образом:

sudo aptitude purge dpkg -l | grep php| awk '{print $2}' |tr "\n" " "
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php5.6

Затем вы можете проверить версию своего php. Это делается, как показано ниже:

php -v
5
ответ дан 23 May 2018 в 11:51
  • 1
    Я надеюсь, что тот факт, что вы удалите свои текущие пакеты php и установите php, будет очень полезен вам. – Yufenyuy Veyeh Dider 24 April 2016 в 12:42
  • 2
    Вам не нужно делать магию grep-awk, поскольку все упакованные зависят от php5-common, поэтому просто: apt-get purge php5-common очистит все пакеты php5 от вашей системы. – oerdnj 25 April 2016 в 13:09

Другие вопросы по тегам:

Похожие вопросы: