无法在Ubuntu 16.04上安装php5


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存储库吗?还是我做错了什么?



Answers:


76

TL; DR:如果要使用php5,则需要使用Ubuntu 14.04 LTS

在Ubuntu 16.04 LTS上使用PHP 7.0

Ubuntu 16.04已使用新的PHP软件包基础结构切换到PHP 7.0。因此,不,您不能在Ubuntu 16.04上安装php5,但可以使用以下方法安装PHP 7.0软件包:

apt-get install libapache2-mod-php

这将安装一个依赖于最新PHP版本的虚拟软件包,并libapache2-mod-php7.0作为依赖项进行拉取。

如果您正在寻找扩展,也请始终使用无版本的变体(例如,php-apcu而不是php7.0-apcu),因为PECL扩展包装中没有版本,以允许顺利升级。

使用PHP PPA与PHP 7.0共安装PHP 5.6

有一个选项可以使用共同安装PHP 5.6软件包ppa:ondrej/php

有关更多信息,请参见以下答案:https : //askubuntu.com/a/762161/309221

从上面的链接中提取:

假设libapache2-mod-php是为您启用Apache中的PHP的合适方法,您可以按照以下方式进行:

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


2
不,Xenial存储库中没有PHP 5.x软件包。仅在PPA中。
oerdnj '16


当我切换到php5.6时,出现错误“针对apache2.service的作业失败,因为控制进程退出并显示错误代码。有关详细信息,请参见“ systemctl status apache2.service”和“ journalctl -xe”。
lyhong

期刊怎么说?
oerdnj '16

发现类似这样的内容apache2:/etc/apache2/apache2.conf的第140行的语法错误:/ e的第3行的语法错误
lyhong

25

编辑:接受的答案没有明确说明如何共同安装PHP 5.6和7.0,所以我想扩展它。

有关更多信息,请参见以下答案:https : //askubuntu.com/a/762161/309221

从上面的链接中提取:

假设libapache2-mod-php是为您启用Apache中的PHP的合适方法,您可以按照以下方式进行:

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


1
仅供参考:您使用的PPA由撰写接受的答案的人维护。答案的最后一行是:“有一个选项可以使用ppa:ondrej / php共同安装PHP 5.6软件包”。请注意,您也没有安装php5软件包,但没有安装php5.6
muru

1
在配置文件的打包和位置方面存在许多差异,任何寻找旧php5软件包的人都会在新文件中感到惊讶。
muru

我已经编辑了答案,所以它并不表示所接受的答案不正确,而只是扩展了答案。
FlavioEscobar

@NoBugs它确实打包了imagick扩展名。请停止喷出东西,而至少没有基本检查它们是否正确。
oerdnj '16

@FlavioEscobar我已将您的编辑合并到我的答案中。感谢您扩展答案。
oerdnj '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.