Не могу установить php5 в Ubuntu 16.04

53

поэтому я недавно установил свой первый Ubuntu, а точнее, ежедневную сборку 16.04, на мой новый ноутбук, поскольку аппаратное обеспечение было новым для 15.10. Сейчас я нахожусь в процессе его настройки и хочу установить php5 и некоторые расширения.

Когда я выполняю, sudo apt-get install libapache2-mod-php5я получаю сообщение об ошибке, что нет никакого установочного пакета, доступного для php5 и libapache2.

Сообщение об ошибке на немецком языке, поэтому я сомневаюсь, что это поможет, но в любом случае здесь это. :-) E: For package »libapache2-mod-php5« existiert kein Installationskandidat.

Нужно ли добавлять репозиторий apt-get? Или что я делаю не так?

user529857
источник

Ответы:

76

TL; DR: если вы хотите остаться с php5, вам нужно будет остаться в Ubuntu 14.04 LTS

Использование PHP 7.0 в Ubuntu 16.04 LTS

Ubuntu 16.04 перешел на PHP 7.0 с новой инфраструктурой для пакета PHP. Итак, нет, вы не можете установить php5 в Ubuntu 16.04, но вы можете установить пакеты PHP 7.0 с:

apt-get install libapache2-mod-php

Это установит виртуальный пакет, который зависит от последней версии PHP, и получит libapache2-mod-php7.0зависимость.

Если вы ищете расширения, всегда используйте также вариант без версии (например, php-apcuвместо php7.0-apcu), поскольку расширения PECL упакованы без версии, чтобы обеспечить плавное обновление.

Использование PHP PPA для совместной установки PHP 5.6 с PHP 7.0

Есть возможность установить пакеты PHP 5.6 с помощью ppa:ondrej/php.

Для получения дополнительной информации, пожалуйста, смотрите этот ответ: https://askubuntu.com/a/762161/309221

Извлечено из ссылки выше:

Предполагая, 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-xdebug libapache2-mod-php5.6 libapache2-mod-php7.0

Переключить версию PHP (Apache):

  • с php5.6 до php7.0:
    sudo a2dismod php5.6 ; sudo a2enmod php7.0 ; sudo service apache2 restart

  • с php7.0 до php5.6:
    sudo a2dismod php7.0 ; sudo a2enmod php5.6 ; sudo service apache2 restart

oerdnj
источник
2
Нет, в репозиториях Xenial нет пакетов PHP 5.x. Только в ППА.
oerdnj
Похоже, вы правы: bugs.launchpad.net/ubuntu/+source/php5/+bug/1522422
NoBugs
Когда я переключаюсь на php5.6, я получаю сообщение об ошибке «Не удалось выполнить задание для apache2.service, поскольку процесс управления завершился с кодом ошибки. Дополнительные сведения см. В разделе« systemctl status apache2.service »и« journalctl -xe »."
Lyhong
А что пишет журнал?
oerdnj
нашел что-то вроде этого apache2: синтаксическая ошибка в строке 140 файла /etc/apache2/apache2.conf: синтаксическая ошибка в строке 3
файла
25

РЕДАКТИРОВАТЬ: принятый ответ явно не говорит, как установить PHP 5.6 и 7.0 совместно, поэтому я хотел расширить его.

Для получения дополнительной информации, пожалуйста, смотрите этот ответ: https://askubuntu.com/a/762161/309221

Извлечено из ссылки выше:

Предполагая, 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-xdebug libapache2-mod-php5.6 libapache2-mod-php7.0

Переключить версию PHP (Apache):

  • с php5.6 до php7.0:
    sudo a2dismod php5.6 ; sudo a2enmod php7.0 ; sudo service apache2 restart

  • с php7.0 до php5.6:
    sudo a2dismod php7.0 ; sudo a2enmod php5.6 ; sudo service apache2 restart

FlavioEscobar
источник
1
К вашему сведению: используемый вами PPA поддерживается лицом, написавшим принятый ответ. И последняя строка в этом ответе: «Существует возможность совместной установки пакетов PHP 5.6 с использованием ppa: ondrej / php». Обратите внимание, что вы устанавливаете не пакеты php5, а php5.6
muru
1
Существует ряд различий в упаковке и расположении файлов конфигурации, поэтому любой, кто ищет старые пакеты php5, будет удивлен новыми.
Муру
Я отредактировал свой ответ, поэтому он не говорит о том, что принятый ответ был неверным, а только расширяет его.
FlavioEscobar
У @NoBugs есть расширение imagick. Пожалуйста, прекратите извергать вещи, по крайней мере, не проверяя, верны они или нет.
oerdnj
@FlavioEscobar Я включил ваши изменения в мой ответ. Спасибо за расширение ответа.
oerdnj