Debian:升级脚本错误?

我只是运行apt-get更新和升级,以获得我的Debian稳定服务器的最新更新。 它包括一堆PHP5更新。 一个(libapache2-mod-php5)抛出一个错误: ERROR: php5 module already enabled, not enabling php5

此外,Apache没有重新启动,所以PHP5更新没有效果。 我手动重新启动Apache,一切都很好。

这是更新脚本中的错误还是我的服务器搞砸了?

以下是apt-get升级输出的最后一行:

Setting up mysql-client (5.5.49-0+deb8u1) ... Setting up openssh-client (1:6.7p1-5+deb8u2) ... Setting up openssh-sftp-server (1:6.7p1-5+deb8u2) ... Setting up openssh-server (1:6.7p1-5+deb8u2) ... Setting up php5-common (5.6.20+dfsg-0+deb8u1) ... Setting up php5-xmlrpc (5.6.20+dfsg-0+deb8u1) ... Setting up php5-tidy (5.6.20+dfsg-0+deb8u1) ... Setting up php5-cli (5.6.20+dfsg-0+deb8u1) ... Setting up php5-readline (5.6.20+dfsg-0+deb8u1) ... Setting up php5-mysql (5.6.20+dfsg-0+deb8u1) ... Setting up php5-gmp (5.6.20+dfsg-0+deb8u1) ... Setting up php5-gd (5.6.20+dfsg-0+deb8u1) ... Setting up php5-curl (5.6.20+dfsg-0+deb8u1) ... Setting up libapache2-mod-php5 (5.6.20+dfsg-0+deb8u1) ... ERROR: php5 module already enabled, not enabling php5 Setting up linux-libc-dev:amd64 (3.16.7-ckt25-2) ... Setting up php-pear (5.6.20+dfsg-0+deb8u1) ... Installing new version of config file /etc/pear/pear.conf ... Processing triggers for libc-bin (2.19-18+deb8u4) ...

我只是看了postinst-maintainer-script /var/lib/dpkg/info/libapache2-mod-php5.postinst 。 它指出:

 php5_enable() { PHP_MODULE=$(a2query -m | sed -n 's/^\(php[\.0-9]*\) (enabled.*)/\1/p') if [ -n "$PHP_MODULE" -a "$PHP_MODULE" != "php@PHP_VERSION@" ]; then apache2_msg err "ERROR: $PHP_MODULE module already enabled, not enabling php5" return 1 fi 

我无法弄清楚@ PHP_VERSION @是在哪里设置的,所以我用“5”取代了它:

 php5_enable() { PHP_MODULE=$(a2query -m | sed -n 's/^\(php[\.0-9]*\) (enabled.*)/\1/p') if [ -n "$PHP_MODULE" -a "$PHP_MODULE" != "php5" ]; then apache2_msg err "ERROR: $PHP_MODULE module already enabled, not enabling php5" return 1 fi 

之后,我运行:

 % sudo dpkg-reconfigure libapache2-mod-php5 apache2_invoke php5: already enabled 

这是一个更好的输出。 虽然(看似)无害,但对我来说,这似乎是一个错误。 Debian BTS没有关于这个错误的信息。 你应该考虑报告。

这不是一个真正的错误。 这个脚本只是假设你的Apache2实例中的php5模块没有被启用(并且试图启用它),并且因为它给了你这个消息(这个imho应该是一个警告,如果不仅仅是一个信息,仍然正常工作)。

至于服务重启 – Apache很可能是因为那个“错误”而没有重启。