Как заставить Apache обслуживать index.php вместо index.html?
Если я поместил следующую строку в файл index.html
, чтобы Apache включил файл index.php
:
<?php include("/Live/ls_client/index.php"); ?>
посещение страницы index.html
показывает мне следующее:
<!--?php include("/Live/ls_client/index.php"); ?-->
Почему это? Почему он вообще не включает файл PHP?
Ответы
Ответ 1
Как отмечали другие, скорее всего у вас нет .html
настроенного для обработки PHP-кода.
Сказав это, если все, что вы делаете, использует index.html
для включения index.php
, ваш вопрос, вероятно, должен быть "как использовать index.php
качестве индексного документа?
В этом случае для Apache (httpd.conf) найдите DirectoryIndex
и замените строку на это (будет работать, только если у вас включен dir_module
, но это значение по умолчанию для большинства установок):
DirectoryIndex index.php
Если вы используете другие индексы каталогов, перечислите их в порядке предпочтения, т.е.
DirectoryIndex index.php index.phtml index.html index.htm
Ответ 2
На сегодняшний день (2015, 1 августа), Apache2
в Debian Jessie
, вам нужно отредактировать:
[email protected]:/etc/apache2/mods-enabled$ vi dir.conf
И измените порядок этой строки, доведя index.php до первой позиции:
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
Ответ 3
PHP будет работать только с расширением .php
.
Если вы находитесь в Apache, вы также можете установить в своем файле httpd.conf
расширения для PHP. Вам нужно будет найти строку:
AddType application/x-httpd-php .php .html
^^^^^
и добавьте, сколько расширений, которые следует читать с помощью интерпретатора PHP, как вы хотите.
Ответ 4
Вы не можете включать php-код в файл с расширением html, вы должны изменить расширение index.html для index.php, а другой файл индекса должен иметь другое имя, например template.php
Если файл имеет расширение html, веб-сервер считает, что ваш php-скрипт представляет собой простой текст.