Debian:升级脚本有错误?

Debian:升级脚本有错误?

我刚刚运行了 apt-get update 和 upgrade 来获取我的 Debian 稳定服务器的最新更新。它包含大量 PHP5 更新。其中一个 (libapache2-mod-php5) 抛出了一个错误:ERROR: php5 module already enabled, not enabling php5

此外,Apache 没有重新启动,因此 PHP5 更新无效。我手动重新启动了 Apache,一切正常。

这是更新脚本中的错误还是我的服务器出现问题?

以下是 apt-get upgrade 输出的最后几行:

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) ...

答案1

我刚刚查看了 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不包含有关该错误的信息。您应该考虑报告该错误。

答案2

这实际上不是一个错误。该脚本只是假设您的 Apache2 实例中的 php5 模块未启用(并尝试启用它),因此它会向您显示此消息(在我看来,这应该是一个警告,如果不是信息的话,因为服务仍然运行良好)。

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

相关内容