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

Apache22 отображает исходный код PHP

Я только что установил Apache22, PHP 5 с модулем Apache и MySQL. В файле конфигурации Apache есть строка PHP LoadModule, но он по-прежнему отображает исходный код PHP. Есть ли другие причины, по которым это происходит?

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

Я не использую FreeBSD, поэтому не знаю процесс установки. В Windows и Ubuntu / Linux Mint это делается автоматически.

Это то, что у меня есть в файле php5.conf (именно так он организован в Ubuntu), но его можно просто поместить в http.conf в любом месте после строки модуля загрузки.

<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>

Одна из частых причин - вы используете короткий открытый тег PHP. <? но в PHP есть short_open_tag отключен.

Самое простое решение - добавить строку:

AddType application/x-httpd-php .php

в httpd.conf. Наиболее правильное решение описано в ответе Gohn67.