Обычный способ разбора .html
files as PHP должен добавить либо первую (PHP как модуль Apache), либо обе (PHP как CGI) из следующих строк в .htaccess
файл:
AddType application/x-httpd-php .html .htm
AddHandler application/x-httpd-php .html .htm
Иногда это должно быть x-http-php5
, в зависимости от хоста:
AddType application/x-httpd-php5 .html .htm
AddHandler application/x-httpd-php5 .html .htm
Однако сейчас я на новом хосте, и никакое проникновение этих строк не работает. Во всех случаях необработанный файл отправляется в браузер, и wget
показывает, что x-httpd-php
представлен как Content-Type!
HTTP request sent, awaiting response...
HTTP/1.1 200 OK
Date: Tue, 07 Aug 2012 14:16:40 GMT
Server: Apache
Last-Modified: Tue, 07 Aug 2012 07:46:44 GMT
ETag: "862239-14-4c6a83216c100"
Accept-Ranges: bytes
Content-Length: 20
X-Powered-By: PleskLin
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: application/x-httpd-php
Length: 20 [application/x-httpd-php]
Remote file exists.
Обратите внимание, что Length: 20
точно длина <?php phpinfo(); ?>
, и это то, что он служит. Я подтвердил, что PHP работает как модуль с потрясающей подсказкой в этом ТАК ответе. Я разговаривал с обслуживающим персоналом сервера (партнером, поэтому даже если я переключу хосты, я все равно хотел бы помочь ему решить проблему), и он не знает, в чем проблема или правильная конфигурация. На сервере работает Plesk в дистрибутиве на основе Debian, если это вообще имеет значение.
На самом деле это была проблема конфигурации Apache, на этой странице было решение: http://kb.parallels.com/en/124
Воспроизведено здесь для потомков:
Файлы .htaccess можно включить, поместив следующее в файл «/etc/httpd/conf.d/zz010_psa_httpd.conf»:
AccessFileName .htaccess <Directory "/var/www/vhosts"> Options +All AllowOverride All Order allow,deny Allow from all </Directory>
Затем перезапустите Apache:
#service httpd stop #service httpd start