如何使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文件?

正如其他人已经注意到,很可能你没有.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 

PHP将只能在.php文件扩展名上使用。

如果你在Apache上,你也可以在你的httpd.conf文件中设置PHP的扩展。 你必须找到这一行:

 AddType application/x-httpd-php .php .html ^^^^^ 

并添加多少扩展名,这些扩展名应该随PHP解释器一起阅读。

截至今天(2015年8月1日), Debian Jessie Apache2 ,您需要编辑:

 root@host:/etc/apache2/mods-enabled$ vi dir.conf 

并改变该行的顺序,将index.php带到第一个位置:

 DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm