让Apache2 解析HTML文件中的PHP代码

社会主义新天地 提交于 2019-12-08 15:25:19

最近捣鼓了一下Apache2+PHP+MySQL做一个小站点,首先在描述问题前还是先把我的配置环境先罗列一下:

1. 首先是我所使用的服务器的Ubantu版本

2.以下是我安装的Apache2的版本

3.以下是我安装的PHP的版本

4.以下是我测试Apache解析PHP的过程

在我安装完成后自然要尝试一下啦,Apache2的默认的网站根目录是 /var/www/html,所以我首先在根目录下建立了一个test.php文件,内容如下,功能很简单,就是定义了一个变量,做变量赋值,然后再使用echo打印出来(注意这个test.php文件一定要放在根目录下)。

下一步就是在浏览器里去访问这一文件啦,在地址栏中输入以下地址(localhost/test.php),然后我们可以看到页面中打印出了我们期望的数据,说明Apache2已经可以成功的解析PHP文档啦。

我再做了一个尝试,因为有时候会在HTML文件中加入PHP代码,所以我想看看HTML文件中的PHP代码是否可以被执行,还是在根目录下我建立了一个form.html文档,其中的内容如下。其中的功能也很简单,我们用HTML的<p>...</p>输出一段文本,然后嵌入了一段PHP代码,输出了一段文本,所以我们应该得到两段文本。

我们还是在浏览器的地址中访问form.html,然后我们看到在网页中只显示了一段文档,而由PHP输出的文档没有出现,所以在HTML文件中的PHP代码并没有被Apache2执行。(这里省去了在网上找资料的痛苦的过程。。。。。。)

解决办法是我们要修改一下Apache2的配置文件,cd到路径 /etc/apache2下,我们可以看到有以下几个配置文件,我们要修改的是apache2.conf.

打开apache2.conf文件后在最后加入以下文本即可,然后保存文件后需要重启Apache2(使用指令sudo /etc/init.d/apache2 restart重启Apache2)。

在完成Apache2重启后,我们在浏览器的地址栏里重新访问form.html文件,再查看一下网页输出的结果,发现可以正常的输出两段文本,说明在HTML文档中的PHP代码被正常执行了。

我们回顾以下为什么增加了“AddType application/x-httpd-php .htm .html”之后HTML中的PHP就被执行了,原来AddType是在给定的文件扩展名与特定的内容类型之间建立映射,Apache2默认情况下是当遇到.php后缀的文件时才会把其中的内容当做PHP代码解析。而当我们把PHP代码写入.html文件中时,Apache2发现并不是.php文件,所以不会把其中的内容当做PHP代码进行解析,这就是我们一开始无法输出PHP所打印的文本的原因。当我们加入了“AddType application/x-httpd-php .htm .html”之后,就相当于告诉Apache2即使在以.htm/.html结尾的文件中出现了PHP的代码,同样要进行解析。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!