如何使Apache服务index.php而不是index.html?

时间:2013-04-24 12:27:21

标签: php apache include

如果我将以下行放在index.html文件中,要使Apache包含index.php文件:

  <?php include("/Live/ls_client/index.php"); ?>    

访问index.html页面会向我显示:

<!--?php include("/Live/ls_client/index.php"); ?-->

为什么?为什么它实际上不包含PHP文件?

4 个答案:

答案 0 :(得分:63)

正如其他人所说,很可能你没有设置.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

答案 1 :(得分:15)

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

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

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

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

答案 2 :(得分:7)

PHP仅适用于.php文件扩展名。

如果您使用的是Apache,还可以在httpd.conf文件中设置PHP的扩展名。你必须找到这条线:

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

并根据需要添加应该使用PHP解释器读取的扩展数。

答案 3 :(得分:0)

您不能在扩展名为html的文件中包含php代码,而必须将index.html的扩展名更改为index.php,而另一个索引文件必须具有另一个名称,例如template.php

如果文件具有html扩展名,则Web服务器认为您的php脚本为纯文本。