我刚刚按照 ondej 的 PPA 指南将 PHP7 添加到我的服务器。现在我想删除旧的 php,显然我这样做了sudo apt-get remove --purge php5
,而且似乎一切都很顺利,只是它没有被卸载。如果我这样做,php -v
我会得到版本 7,但我仍然可以php5 -v
得到 5.6 或php5.6 -v
得到同样的东西。当我sudo apt-get remove php5
现在这样做(或 php5.6)时,我发现包没有安装,但显然是因为我能够执行命令。
x@x-server:~$ php -v
PHP 7.0.6-1+donate.sury.org~trusty+1 (cli) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
x@x-server:~$ php5 -v
PHP 5.6.21-1+donate.sury.org~trusty+1 (cli)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
x@x-server:~$ php5.6 -v
PHP 5.6.21-1+donate.sury.org~trusty+2 (cli)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
x@x-server:~$ sudo apt-get remove --purge php5 php5.6
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package 'php5.6' is not installed, so not removed
Package 'php5' is not installed, so not removed
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
x@x-server:~$
我怎样才能彻底删除 php5?
而且只是因为我知道有人会问 - 我想删除它,因为我看到有一些我不想要的进程因此而运行。
1192 root 20 0 358756 30920 23568 S 0.0 2.1 0:00.12 apache2
1238 root 20 0 309316 29708 23448 S 0.0 2.0 0:00.11 php-fpm7.0
1176 root 20 0 166212 17848 14408 S 0.0 1.2 0:00.07 php-fpm5.6
1226 www-data 20 0 359312 15488 7656 S 0.0 1.1 0:00.09 apache2
1227 www-data 20 0 359008 14028 6380 S 0.0 1.0 0:00.00 apache2
1228 www-data 20 0 359008 13496 5856 S 0.0 0.9 0:00.00 apache2
1229 www-data 20 0 358788 9324 1964 S 0.0 0.6 0:00.00 apache2
1230 www-data 20 0 358788 9324 1964 S 0.0 0.6 0:00.00 apache2
1377 www-data 20 0 358788 9324 1964 S 0.0 0.6 0:00.00 apache2
1242 www-data 20 0 309316 8496 2236 S 0.0 0.6 0:00.00 php-fpm7.0
1243 www-data 20 0 309316 8496 2236 S 0.0 0.6 0:00.00 php-fpm7.0
1299 root 20 0 105680 6540 5468 S 0.0 0.4 0:00.06 sshd
1178 www-data 20 0 166212 5580 2140 S 0.0 0.4 0:00.00 php-fpm5.6
1179 www-data 20 0 166212 5580 2140 S 0.0 0.4 0:00.00 php-fpm5.6
答案1
名为php5
或的软件包php5.6
只是一个元软件包,它提取可用的 Web SAPI(apache2、fpm 或 cgi)之一。删除完整软件包的最简单方法是删除php5-common
和/或php5.6-common
软件包,因为其他所有软件包都依赖于它,例如:
apt-get purge php5-common
另一种选择是使用通配符支持apt-get
并执行以下操作:
apt-get purge 'php5*'
答案2
尝试运行 apt-get autoremove。我认为您看到的是 FastCGI 进程管理器,它可能已随核心 PHP5 一起安装,但未作为卸载的一部分删除。如果失败,请运行 apt-get remove php5.6-fpm --purge --autoremove。您已经在运行 v7 版 fpm,因此不会看到任何不利影响。
答案3
您可以使用以下命令完全删除所有 PHP 包:
sudo apt-get purge `dpkg -l | grep php| awk '{print $2}' |tr "\n" " "`