Мы запускаем веб-сервер с использованием Debian 6.0.3 с Apache 2, мы недавно обновили Debian 5 до 6. С тех пор скрипты php в пользовательских каталогах (с использованием mod_userdir) перестали работать, они загружаются, а не запускаются.
Существует также веб-сайт, использующий php за пределами пользовательских каталогов, и он продолжает нормально работать, поэтому PHP, похоже, обычно работает на сервере. Я тестировал его с несколькими файлами PHP, среди которых был простой файл phpinfo, который отлично работает на основном сайте, но просто загружается при копировании в один из пользовательских каталогов.
Файлы php и каталог, содержащий их, являются исполняемыми для всех. Параметр в Apache php5.conf, который по умолчанию отключает PHP в пользовательских каталогах, закомментирован, поэтому php5.ini выглядит так:
<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. Сейчас у меня заканчиваются идеи, в чем может быть проблема, и я не знаю, как я могу действительно определить, какая проблема препятствует выполнению этих файлов php. Есть идеи, как я могу это решить?
Обновить:
Как ни странно, PHP, похоже, отлично работает в подпапках пользовательских каталогов, поэтому, если я скопирую файл PHP из /home/user/public_html/
к /home/user/public_html/test/
это вдруг срабатывает.
Для начала попробуйте
egrep -ir "(php_admin_value|mod_userdir|public_html)" /etc/apache2
и посмотрите все возможные места, где PHP для пользовательских каталогов может быть отключен. При необходимости измените. Перезагрузите Apache, наслаждайтесь.
У меня возникла та же проблема, и я решил ее, установив
apt-get install libapache2-mod-php5