Сегодня я сделал dist-upgrade с Lenny до Squeeze (я делал это раньше на многих других серверах без особых проблем), и, похоже, все работает, кроме PHP. Сайты, использующие PHP, просто показывают файлы PHP, а не сервер, их генерирующий. Насколько я могу судить, сервер Apache на самом деле правильно работает с PHP согласно журналу ошибок, но он просто действует так, как будто он вообще не работает.
При устранении неполадок я обнаружил странную вещь: /etc/asterisk/mods-enabled/php5.conf, похоже, ссылается на несуществующий файл; а именно mod_php.c. Для меня это не похоже на скомпилированный модуль, и в то же время mod_php.c и mod_php.so не существуют в системе, несмотря на то, что система Debian dpkg, похоже, так считает.
Вот содержимое php5.conf:
<IfModule mod_php5.c>
<FilesMatch "\.ph(p3?|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</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 я получаю следующие сообщения об ошибках:
[Tue Apr 26 15:46:42 2011] [notice] caught SIGTERM, shutting down
[Tue Apr 26 15:46:43 2011] [warn] No JkLogFile defined in httpd.conf. Using default /var/log/apache2/mod_jk.log
[Tue Apr 26 15:46:43 2011] [warn] No JkShmFile defined in httpd.conf. Using default /var/log/apache2/jk-runtime-status
[Tue Apr 26 15:46:43 2011] [notice] suEXEC mechanism enabled (wrapper: /usr/lib/apache2/suexec)
[Tue Apr 26 15:46:44 2011] [notice] Digest: generating secret for digest authentication ...
[Tue Apr 26 15:46:44 2011] [notice] Digest: done
[Tue Apr 26 15:46:44 2011] [warn] No JkLogFile defined in httpd.conf. Using default /var/log/apache2/mod_jk.log
[Tue Apr 26 15:46:44 2011] [warn] No JkShmFile defined in httpd.conf. Using default /var/log/apache2/jk-runtime-status
[Tue Apr 26 15:46:44 2011] [error] python_init: Python version mismatch, expected '2.6.5+', found '2.6.6'.
[Tue Apr 26 15:46:44 2011] [error] python_init: Python executable found '/usr/bin/python'.
[Tue Apr 26 15:46:44 2011] [error] python_init: Python path being used '/usr/lib/python2.6/:/usr/lib/python2.6/plat-linux2:/usr/lib/python2.6/lib-tk:/usr/lib/python2.6/lib-old:/usr/lib/python2.6/lib-dynload'.
[Tue Apr 26 15:46:44 2011] [notice] mod_python: Creating 8 session mutexes based on 110 max processes and 0 max threads.
[Tue Apr 26 15:46:44 2011] [notice] mod_python: using mutex_directory /tmp
[Tue Apr 26 15:46:44 2011] [notice] Apache/2.2.16 (Debian) DAV/2 SVN/1.6.12 mod_fcgid/2.3.6 mod_jk/1.2.26 PHP/5.3.3-7+squeeze1 with Suhosin-Patch mod_python/3.3.1 Python/2.6.6 mod_ssl/2.2.16 OpenSSL/0.9.8o mod_perl/2.0.4 Perl/v5.10.1 configured -- resuming normal operations
Заменяли ли вы какие-либо файлы конфигурации Apache во время dist-upgrade? Проверьте / etc / apache2 и все подкаталоги на наличие файлов * -old. Если они существуют, проверьте различия - возможно, вы включили PHP нестандартным способом или, например, изменили apache2.cfg, и соответствующие изменения были перезаписаны. Убедитесь, что mod_php присутствует в / etc / apache2 / mods-enabled, и включите его с помощью a2enmod, если нет.
Вы используете mod_python? В опубликованном вами журнале ошибок указаны ошибки Python.
Похоже, проблема в mod_jk.
Стабильный пакет для сжатия libapache-mod-jk (1: 1.2.30-1squeeze1) который был обновлен из пакета lenny libapache-mod-jk (1: 1.2.26-2 + lenny1)
Eсть подтвержденный отчет об ошибке пакета Debian что после обновления mod_jk не будет подключаться к котам, но должен быть исправлен в последней версии.
Попробуйте обновить его с помощью apt-get и посмотрите, даст ли он вам новую версию, если нет, выполните apt-get install libapache-mod-jk и оставьте существующие файлы конфигурации, если он спросит. (Вероятно, следует создать резервную копию любых файлов конфигурации перед обновлением.
Вы также перезагружали сервер после обновления? Когда я перешел с lenny на сжатие, ядро не обновлялось, пока я не перезагрузился.