Файлы PHP загружаются, а не выполняются в UserDir на Apache

Мы запускаем веб-сервер, используя 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/ это внезапно работает.

2 ответа

Для начала попробуйте

egrep -ir "(php_admin_value|mod_userdir|public_html)" /etc/apache2

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

Я испытал ту же проблему и решил ее, установив

apt-get install libapache2-mod-php5
Другие вопросы по тегам