如何在Ubuntu 12.04 LTS上检查是否安装了多个PHP版本?

61

如何知道我系统中是否同时安装了php5.3和php5.5?如何删除php5.3(如果已经安装)并配置Apache2以使用php5.5?


你可以使用echo phpinfo()或者phpversion()来查看它们的输出。 - Albzi
PHP版本5.3.10-1ubuntu3.15是phpversion的标头。但在终端上输入php -v时,它显示php5.5.21。 - Sujata
好的,所以你知道你安装了两个版本! - Albzi
8个回答

86

我在Ubuntu中使用以下命令查看已安装的PHP版本:

sudo update-alternatives --list php

第二种方法是进入 php 目录,这里存储了所有 PHP 版本的配置文件:

cd /etc/php 
dir 

输出:

 > 5.6  7.0  7.1

36

既然你拥有 Linux 环境,你可以在控制台上运行这个命令:

locate bin/php

然后对于任何看起来像PHP二进制文件的东西,获取版本。对于上面的示例,我的输出结果是:

/home/xx/Development/Personal/Project1/webapp/bin/phpunit
/home/xx/Development/Personal/Project1/webapp-backup/vendor/bin/phpunit
/home/xx/Development/Personal/Project2/app/vendor/bin/phpunit
/home/xx/php-threaded/bin/php
/home/xx/php-threaded/bin/php-cgi
/home/xx/php-threaded/bin/php-config
/home/xx/php-threaded/bin/phpize
/usr/bin/php
/usr/bin/php5
/usr/local/bin/php-cgi
/usr/local/bin/php-config
/usr/local/bin/php53
/usr/local/bin/phpize
/usr/sbin/php5dismod
/usr/sbin/php5enmod
/usr/sbin/php5query

其中有几个看起来像是PHP二进制文件。那么,让我们获取每个版本:

/home/xx/php-threaded/bin/php -v
/usr/bin/php -v
/usr/bin/php5 -v
/usr/local/bin/php53 -v

这将为您提供已安装的PHP版本。

我不建议删除旧版本,因为它可能会删除某些文件,导致某些功能无法正常工作。您可以配置控制台版本或Apache版本,以使用您想要的版本。


针对您的补充问题:看起来您按照此处的说明向您的Ubuntu版本添加了一个非官方仓库,因为标准仓库不支持5.5。

我们一起发现让它工作的方法是先将Apache从2.2升级到2.4:

sudo apt-get upgrade apache2

需要注意的是,这可能会导致一些虚拟主机修复工作,因为某些Apache指令在此版本中发生了更改。完成后,您可以获取mod_php的新版本:

sudo apt-get install libapache2-mod-php5

3
通常可以使用whereis命令找到多个PHP版本:whereis php - baptx

36

要检查您安装的版本,请键入:

cd /etc/php

在终端中键入上述命令以进入PHP安装的配置文件夹,然后输入以下命令:

ls

输出将是对应于您机器上安装版本的文件夹。 在我的情况下,该命令输出如下:

5.6 7.0 7.1

2
简单而有效 :-) - DilbertDave
5
即使你在/etc/php/目录下有很多版本,也不一定意味着你安装了很多php版本。如果你只看到php版本文件夹中的"mods-available"文件夹,例如/etc/php/5.6/mods-available,那么php5.6就没有安装。如果该版本已安装,至少应该有"cli"或"fpm"。尝试使用update-alternatives --display php列出可用的php版本。 - Takman
1
你可以直接使用 ls /etc/php - Abdullah

33

我经常使用这个命令来查看PHP版本列表,并且可以用它来安装并切换PHP版本。

sudo update-alternatives --config php

6
你可以在控制台上运行以下命令:
find / -name php | grep bin

4
我使用以下命令在Ubuntu中查看已安装的PHP版本: sudo dpkg --list | grep ' php[0-9]\.[0-9] ' 该命令将列出所有已安装的PHP版本。

2

获取所有已安装的软件包列表,并过滤已安装的 PHP 版本:

sudo apt list --installed 2>/dev/null | cut -d / -f 1 | grep ^php[0-9].[0-9]$;

或者

sudo apt list --installed 2>/dev/null | cut -d / -f 1 | grep ^php[0-9].[0-9]$ | xargs;

如果您只需要获取已安装的 PHP 版本而不包括不必要的内容。

或者

sudo update-alternatives --list php;


1

我在CyberPanel中安装了Nextcloud。这是我的解决方案,转到public_html目录:

sudo -u webuser /usr/local/lsws/lsphp81/bin/php occ files:scan -v --all

通过以下方式找到 PHP 位置:

locate bin/php

为了让locate工作:

apt install plocate

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