最近捣鼓了一下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的代码,同样要进行解析。
来源:CSDN
作者:sanyecao502
链接:https://blog.csdn.net/sanyecao502/article/details/97612628