Обнаружил, что на моем домашнем компе (openSuSe 12.1) php-скрипты перестали исполнятся веб-сервром апач2. Вместо результата выполнения браузер предлагает сохранить содержимое php файла …
Такая ошибка давно мне и известна и я сразу полез в конфиги, вспоминая при этом что же менял я там в последнее время… однако убедился, что конфиги давно не редактировались. Понял сразу: apache и php обновились…
Поиск решения начал с проверки работы веб-сервера, сперва надо попробовать увидеть phpinfo
1 | # echo '<?php phpinfo();' > /srv/www/htdocs/i.php |
и затем wget:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | $ wget -s http://localhost/i.php asking libproxy about url 'http://localhost/i.php' libproxy suggest to use 'direct://' --2012-06-11 13:17:02-- http://localhost/i.php Connecting to localhost:80... connected. HTTP request sent, awaiting response... HTTP/1.1 200 OK Date: Mon, 11 Jun 2012 07:18:35 GMT Server: Apache/2.2.21 (Linux/SUSE) Last-Modified: Mon, 11 Jun 2012 03:16:17 GMT ETag: "4ae73-10-4c229c5f63bee" Accept-Ranges: bytes Content-Length: 16 Keep-Alive: timeout=15, max=100 Connection: Keep-Alive Content-Type: application/x-php Length: 16 [application/x-php] Saving to: `i.php' |
При внимательном взгляде на заголовки, видно, что нет строки типа X-Powered-by: PHP5
значит модуль php не загрузился.
Надо включить loglevel debug
включается в /etc/sysconfig/apache2
APACHE_LOGLEVEL=»debug»
Но после перезапуска ничего подозрительного не увидел
Искал по форумам, переставлял апач, даже копировал конфиги с других компов с opensuse, не работает… как вдруг дошло, что просто ошибка в php. Оказалось вручную устанавливал расширение mongo. Помогло удаление /etc/php5/conf.d/mongo.ini
Все это понятно, но почему в error_log ни звука не было о не соответствии расширений и php?