Как заставить 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-скрипт представляет собой простой текст.