Назад | Перейти на главную страницу

Debian: ошибка в скрипте обновления?

Я просто запустил apt-get update and upgrade, чтобы получить последние обновления для моего стабильного сервера 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 /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 не содержит информации об этой ошибке. Вам следует подумать об этом.

На самом деле это не ошибка. Сценарий просто предполагает, что модуль php5 в вашем экземпляре Apache2 не включен (и пытается его включить), и из-за этого выдает вам это сообщение (которое imho, вероятно, должно быть предупреждением, если не просто информацией, так как служба все еще отлично работает).

Что касается перезапуска сервиса - скорее всего, из-за этой «ошибки» Apache не перезапустился.