PHP5软件包在Ubuntu 16.04中无法安装

93

当我尝试在Ubuntu 16.04中使用以下代码安装php5时:

sudo apt-get install php5 php5-mcrypt

我遇到了以下错误:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package php5 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'php5' has no installation candidate

我已经尝试重新安装,但没有帮助。

所有这些错误都是在我将我的15.10 Ubuntu更新到16.04之后遇到的。


2
你可以在下面的链接中找到这个问题的答案 http://askubuntu.com/questions/756181/installing-php-5-6-on-xenial-16-04/756186#756186 - Prakash Bhandari
7个回答

138

Ubuntu 16.04默认安装PHP7,因此没有PHP5的软件包。

但是如果你想要,可以添加PPA来获取这些软件包:

删除所有标准 PHP 软件包

使用 dpkg -l | grep php| awk '{print $2}' |tr "\n" " " 命令列出已安装的 PHP 软件包,然后使用 sudo aptitude purge your_packages_here 删除不需要的软件包,或者如果你想直接删除它们,可以使用以下命令:

sudo aptitude purge `dpkg -l | grep php| awk '{print $2}' |tr "\n" " "`

添加PPA源

sudo add-apt-repository ppa:ondrej/php

安装你的PHP版本

sudo apt-get update
sudo apt-get install php5.6

你也可以安装php5.6模块..

验证你的版本

sudo php -v
根据https://askubuntu.com/a/756186/532957的内容(感谢@AhmedJerbi)。

1
我理解这一点,但有没有办法让它在PHP7本身中工作? - Srijan Karki
1
@SrijanKarki,您可以使用“sudo apt-get install php7”来安装php7,但是我不明白您所说的“让这在php7中工作的方法”。您的问题是关于安装php5的,不是吗?否则请澄清,我会相应地编辑我的答案。 - Chris Stadler
2
是的,我已经安装了PHP7。我也尝试按照这个链接中所说的做法来解决问题。在这里。然而,无法找到“localhost/phpadmin”页面。是否有一些可能导致此错误的原因? - Srijan Karki
@SrijanKarki — 所以安装PHP Admin。它与PHP无关,除了用该语言编写。 - Quentin
使用前缀"php5.6-"而不是"php5-",就像在Ubuntu 16.04上一样。 - Kamaldeep Singh
非常好用。
您需要安装 aptitude
运行以下命令以安装 aptitude:sudo apt-get install aptitude
- Sambruce Sam

57

在Ubuntu 14.04及更早版本中,您必须使用前缀“php5.6-”而不是“php5-”:

sudo apt-get install php5.6 php5.6-mcrypt

这刚刚从我那里拯救了我很多痛苦和沮丧! - Savara
4
对我没用。0 升级,0 新安装。 - Jekis

34

如果您只想安装PHP,无论是哪个版本,请尝试PHP7

sudo apt-get install php7.0 php7.0-mcrypt

4
sudo apt-get install php7.0-mysql

对我而言,PHP 7.0 运行良好。


1
E: Package 'php7.0-mysql' has no installation candidate - WebBrother

2

这对我来说有效。

sudo apt-get update
sudo apt-get install lamp-server^ -y

;)


0

目前,我正在使用Ubuntu 16.04 LTS。

我也遇到了同样的问题,当使用Php获取Postgress数据库值时,我通过使用以下命令解决了它。

我的PHP版本是7.0,所以我尝试了下面的命令。

apt-get install php-pgsql

记得重新启动Apache。

/etc/init.d/apache2 restart

0

我最近也遇到了这个问题,并使用以下命令解决了它:

sudo apt install php7.2-cli

php已经安装完成。我正在使用Ubuntu 18.04。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接