
У меня есть сервер с suPHP, Apache2 и PHP5.4.
Я заметил, что документ index.html выполнит код PHP, в то время как test.html не выполнит код PHP. Конечно, я не хочу, чтобы код PHP выполнялся внутри файла index.html.
Я не знаю, где искать проблему. Я не нашел места в своей конфигурации, где я назначаю php-handler некоторым не-*.php-файлам.
Вот мой mods-available/suphp.conf
<IfModule mod_suphp.c>
<FilesMatch "\.ph(p3?|tml)$">
SetHandler application/x-httpd-suphp
</FilesMatch>
suPHP_AddHandler application/x-httpd-suphp
# suPHP_PHPPath /usr/bin/php
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
# Order allow,deny
# Allow from all
</FilesMatch>
AddType application/x-httpd-php-source .phps
suPHP_AddHandler application/x-httpd-php-source
# AddHandler application/x-httpd-php-source
<Directory />
suPHP_Engine on
</Directory>
# By default, disable suPHP for debian packaged web applications as files
# are owned by root and cannot be executed by suPHP because of min_uid.
# Benötigen wir für Nagios3
# <Directory /usr/share>
# suPHP_Engine off
# </Directory>
# # Use a specific php config file (a dir which contains a php.ini file)
# suPHP_ConfigPath /etc/php5/cgi/suphp/
# # Tells mod_suphp NOT to handle requests with the type <mime-type>.
# suPHP_RemoveHandler <mime-type>
</IfModule>
Вот мой mods-available/php5.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>
решение1
Проверьте файлы .htaccess на наличие следующих элементов, так как там может быть включена интерпретация PHP:
AddType application/x-httpd-php .html .htm
Если это не сработает, выполните поиск по строке. Скорее всего, он где-то включен.
grep -rnw 'web_directory_here' -e "x-httpd-php"
Если вы где-либо обнаружите AddType, удалите его.
==
ОБНОВЛЕНИЕ: Еще одно место для проверки — это типы MIME Apache, чтобы убедиться, что html не устанавливается на php. Убедитесь, что html не находится ни в одной из строк ниже.
check in httpd/conf
application/x-httpd-php phtml php php3 php4 php5 php6
application/x-httpd-php-source phps
решение2
Вы цитируете свой mods-available/php5.conf. Включен ли ваш mod_php5, то есть есть ли у вас /etc/apache2/mods-enabled/php5.load? Если да, попробуйте a2dismod php5
, так как не рекомендуется включать suphp и mod_php одновременно, по крайней мере, глобально. Также попробуйте phpinfo() в вашем index.html, чтобы выяснить, какой модуль обрабатывает запрос..