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

Apache2 некорректно обслуживает PHP-скрипты

У меня возникла проблема с моей конфигурацией Apache 2.2.16, работающей в Debian Squeeze. Проблема в том, что он полностью перестал обслуживать PHP5-скрипты. Когда я пытаюсь получить доступ к сайтам с помощью Google Chrome, вместо этого он загружает файл под названием «загрузка», который содержит содержимое скрипта. Это конечно нехорошо. Он отлично обслуживает обычные html-файлы ...

Я занимаюсь этим уже довольно давно, и после всех поисков в Google и устранения неполадок я подумал, что сейчас самое время спросить вас, ребята. Вот что у меня есть:

  1. Установлены пакеты php5 и libapache2-mod-php5.
  2. / etc / apache2 / mods-available содержит как php5.load, так и php5.conf, и они связаны символическими ссылками из каталога с поддержкой модов
  3. Каталог / etc / php5 / остается нетронутым с момента установки.

Вот содержимое /etc/apache2/mods-available/php.load:

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

И /etc/apache2/mods-available/php.conf:

<IfModule mod_php5.c>
    <FilesMatch "\.ph(p3?|tml)$">
        SetHandler application/x-httpd-php
    </FilesMatch>
    <FilesMatch "\.phps$">
        SetHandler application/x-httpd-php-source
    </FilesMatch>
    <IfModule mod_userdir.c>
        <Directory /home/*/public_html>
            php_admin_value engine Off
        </Directory>
    </IfModule>
</IfModule>

Что мне не хватает? Это сервер с измененными виртуальными хостами и т.п., поэтому я мог изменить некоторые настройки, которые вызывают эту проблему, но простая очистка и переустановка пока не подходят, поскольку конфигурация довольно обширна. Любая помощь была бы замечательной. Спасибо.

Редактировать: Я пытаюсь получить доступ к скриптам, запущенным на виртуальных хостах apache, в / var / www /. Конфигурация для них выглядит так:

<VirtualHost 1.2.3.4:80>
        ServerAdmin webmaster@domain.com
        ServerName domain.com
        ServerAlias www.domain.com
        DocumentRoot /var/www/domain.com/public_html/
        ErrorLog /var/www/domain.com/logs/error.log
        CustomLog /var/www/domain.com/logs/access.log combined
        Options -indexes
</VirtualHost>

Вы можете попробовать удалить весь php_admin_value engine Off настройки, возможно, вы неожиданно совпадаете со сценариями. Делает FilesMatch делать сопоставление без учета регистра? Возможно, проверьте синтаксис своих регулярных выражений?

Как php.conf загружается? Дважды проверьте, правильно ли он загружается.

Откуда вы пытаетесь получить доступ к скрипту php? Я предполагаю где-то в / home / * / public_html?

Я считаю, что php_admin_value Engine Off отключит значение движка в php.ini .. и, согласно комментариям php.ini, он должен быть включен:

; Enable the PHP scripting language engine under Apache.
engine = On

Что произойдет, если вы измените php_admin_value engine Off на php_admin_value engine On