браузер загружает php файл с веб-сервера apache - PullRequest
8 голосов
/ 08 апреля 2011

У меня есть веб-сервер apache.Допустим, домен этого сервера: example.com .

Когда я получаю доступ к example.com , файл index.php правильно отображается в браузере.

Однако, когда я получаю доступ, например, example.com / ~ user , файл index.php файла /home/user/public_html/index.php загружается, а не отображается.

Как исправитьЭта проблема?Я изменил "expose_php = Off" в php.ini, но ничего не изменилось.

Ответы [ 3 ]

12 голосов
/ 08 апреля 2011

Если вы используете Debian / Ubuntu, взгляните на этот файл /etc/apache2/mods-available/php5.conf

мой выглядит следующим образом, и вы можете заметить, что мне пришлось прокомментировать некоторую строку, чтобы заставить PHP работать в пользователе dir

<IfModule mod_php5.c>
    <FilesMatch "\.ph(p3?|tml)$">
        SetHandler application/x-httpd-php
    </FilesMatch>
    <FilesMatch "\.php$">
        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, чтобы изменения вступили в силу, команда для перезапуска apache в системе на основе debian: /etc/init.d/apache2 restart

5 голосов
/ 10 октября 2011

Надеюсь, это спасет кого-то еще от головной боли. Я знаю, что этот вопрос старый, но он все еще возникает при поиске этой проблемы.

Я не уверен, работает ли это во всех установках apache2, но я запускаю apache2 в ubuntu и у меня возникла проблема с загрузкой файлов из моего веб-браузера вместо отображения правильного индексного файла.

Проблема заключается в файле /etc/apache2/mods-enabled/dir.conf Параметр документа по умолчанию здесь переопределял то, что я установил в /etc/apache2/httpd.conf

Так что просто откройте /etc/apache2/mods-enabled/dir.conf и измените порядок файлов в списке.

:)

0 голосов
/ 28 декабря 2012

У меня был похожий опыт - некоторые php-файлы работают нормально, но в других, кажется, загружен необработанный php-код.

В моем случае это было из-за сломанных файлов, использующих формат коротких теговиз,Это не рекомендуется, и вы можете обнаружить, что в php.ini по умолчанию эта поддержка отключена.При отключенной поддержке код php отправляется в браузер, как если бы это был HTML.

Если вы не можете избежать коротких тегов (как в моем случае - целой базы кодов с использованием коротких тегов), то выможно установить его разрешенным в php.ini:

short_open_tag = On
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...