XAMPP - PHP 不在虚拟主机上解析
Posted
技术标签:
【中文标题】XAMPP - PHP 不在虚拟主机上解析【英文标题】:XAMPP - PHP not parsing on virtualhost 【发布时间】:2012-09-14 12:21:07 【问题描述】:我已经为我的本地机器设置了一个虚拟主机。
这是我在/etc/hosts
文件中的内容:
127.0.0.1 localhost local.dev
127.0.1.1 tomica-ubuntu
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
这是我的/opt/lampp/etc/extra/httpd-vhosts.conf
中该虚拟主机的配置:
<VirtualHost *:80>
DocumentRoot "/opt/lampp/htdocs/dev"
ServerName local.dev
</VirtualHost>
在我的/opt/lampp/htdocs/dev/index.html
我有这个:
<html>
<body>
<p>HTML</p>
<?php echo 'PHP' ?>
</body>
</html>
但是当我在浏览器中打开http://local.dev
时,我只看到:
HTML
但是,如果我打开文档源,我可以看到:
<html>
<body>
<p>HTML</p>
<?php echo 'PHP' ?>
</body>
</html>
如果我检查页面的 DOM,会有:
<html>
<body>
<p>HTML</p>
<!--<?php echo 'PHP' ?>-->
</body>
</html>
另外,如果我将 /opt/lampp/htdocs/dev/index.html
重命名为 /opt/lampp/htdocs/dev/index.php
,一切似乎都很好。
为什么我的 PHP 代码没有在 .html 文档中解析?
【问题讨论】:
【参考方案1】:默认情况下,mod_php
不会告诉 Apache 让它处理带有 .html
扩展名的文档。如果您使用AddHandler
directive 更改处理程序类型:
AddHandler php-script .html
那么 Apache 就会知道您想让 PHP 处理带有 html
扩展名的文件的内容。
默认情况下不启用此功能的原因是因为通过 PHP 解释器运行文档会产生成本(CPU、内存使用、最终用户时间)。浪费时间是没有意义的——所以在 mod_php 的默认设置中,HTML 文件(通常是静态事务)不会通过 PHP 解释器。
【讨论】:
哇,真快。谢谢@肖恩。虽然我不得不稍微修改一下。所以在/opt/lampp/htdocs/dev
我创建了一个.htaccess
文件并将其放入:AddHandler php5-script .html
@ТомицаКораћ - 这也可以 - 我想它可以添加到您的 .conf
文件中的 VirtualHost
部分 - 但是 .htaccess 也可以工作:-)
我明白了,只是我觉得我在服务器设置方面仍然太新,我正在尝试在每个项目的基础上尽可能多地做 :) 非常感谢你的帮助.以上是关于XAMPP - PHP 不在虚拟主机上解析的主要内容,如果未能解决你的问题,请参考以下文章