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

PHP не выполняет скрипты после обновления Debian

Сегодня утром мы обновили наш веб-сервер Debian до Wheezy, и после того, как все остальное наладилось, Apache, похоже, потерял способность выполнять сценарии PHP, хотя он мог это делать до обновления. Теперь мы видим только код PHP, как если бы модуль PHP не был включен.

Я проверил всех обычных подозреваемых, убедился, что модуль PHP загружен и установлен, и убедился, что /etc/apache2/mods-enabled/php5.conf имеет установленную опцию "SetHandler application / x-httpd-php". Я также следил за самой последней документацией по установке PHP5 на Apache, и все, похоже, проверено. В журнале ошибок Apache также нет ошибок, которые указывали бы на проблему.

Я что-то пропустил?

Вывод из 'apachectl -t -D DUMP_MODULES | grep php':

Syntax OK
 php5_module (shared)

Вывод из 'www3: / etc / apache2 # apache2 -v':

Server version: Apache/2.2.22 (Debian)
Server built:   Jan 31 2014 18:55:37

Содержимое /etc/apache2/mods-enabled/php5.conf:

<IfModule libphp5.so>
#    <FilesMatch "\.ph(p3?|tml)$">
#    </FilesMatch>
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php
    </FilesMatch>
    # To re-enable php in user directories comment the following lines
    # (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
    # prevents .htaccess files from disabling it.
    <IfModule mod_userdir.c>
        <Directory /home/*/public_html>
            php_admin_value engine Off
        </Directory>
    </IfModule>
</IfModule>

Последние журналы ошибок apache с момента последнего перезапуска:

[Thu Apr 10 15:35:44 2014] [notice] caught SIGTERM, shutting down
[Thu Apr 10 15:35:45 2014] [warn] No JkLogFile defined in httpd.conf. Using default /var/log/apache2/mod_jk.log
[Thu Apr 10 15:35:45 2014] [warn] No JkShmFile defined in httpd.conf. Using default /var/log/apache2/jk-runtime-status
[Thu Apr 10 15:35:45 2014] [warn] Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366)
[Thu Apr 10 15:35:45 2014] [notice] suEXEC mechanism enabled (wrapper: /usr/lib/apache2/suexec)
[Thu Apr 10 15:35:45 2014] [notice] Digest: generating secret for digest authentication ...
[Thu Apr 10 15:35:45 2014] [notice] Digest: done
[Thu Apr 10 15:35:45 2014] [warn] No JkLogFile defined in httpd.conf. Using default /var/log/apache2/mod_jk.log
[Thu Apr 10 15:35:45 2014] [warn] No JkShmFile defined in httpd.conf. Using default /var/log/apache2/jk-runtime-status
[Thu Apr 10 15:35:45 2014] [warn] Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366)
[Thu Apr 10 15:35:45 2014] [notice] Apache/2.2.22 (Debian) DAV/2 SVN/1.6.17 mod_fcgid/2.3.6 mod_jk/1.2.37 PHP/5.4.4-14+deb7u8 mod_ssl/2.2.22 OpenSSL/1.0.1e mod_perl/2.0.7 Perl/v5.14.2 configured -- resuming normal operations

Оказывается, это проблема одного из модулей Apache. Отключение большинства из них решило проблему, а затем мы начали добавлять их, пока все остальное не заработало.

Попробуйте выполнить следующие команды:

sudo apt-get purge libapache2-mod-php5

sudo apt-get install libapache2-mod-php5

sudo a2enmod php5

sudo service apache2 restart

Это переустановит все необходимые пакеты, чтобы Apache мог запускать mod_php.

Вы также можете убедиться, что файл php5.conf находится в каталоге / etc / apache2 / mods-enabled. Если это так, вы должны увидеть что-то вроде:

LoadModule php5_module /usr/lib/apache2/modules/libphp5.so

php5-suhosin больше не доступен в wheezy, но если вы не очистите пакет, его .ini файл все еще в /etc/php5/conf.d/ что предотвратит запуск PHP.

Видеть: https://www.debian.org/releases/stable/i386/release-notes/ch-upgrading.html#idp836640