刚开始学习,跟着韩顺平老师的视频课件学习ing~
这是自己在配置虚拟目录时遇到的问题以及解决办法,记录下来~
---------------------------分割线君-------------------------------
我的apache安装目录为E:\apache\Apache24
想要配置的目录为D:\myblog 中的网页文件
- step1 添加虚拟目录节点
找到E:\apache\Apache24\conf 中的httpd.conf文件,增加下图红框中代码
- step2 注释documentroot路径
- step3 测试(先重启apache)
http://localhost:8080/myblog
按照韩老师的教程,理论上这样是可以成功的了。但是我测试时出错了,此时意识到可能是版本不同的问题,我的是2.4版,韩老师是2.2版~
接下来找错~
--------------------------------分割线君-----------------------------------------------------------------------------------------------------------
- 此时重启apache出错,如下图
- 检查错误原因,因为我只是修改了httpd.conf文件,所以一定是该文件问题,所以查找具体哪句代码问题。
方法:进入cmd 然后进入 Apache安装目录(具体为你自己的安装目录)\bin>
输入 httpd.exe -w -n "Apache2.4" -k start
(引号中的Apache2.4修改为你的Apache服务名,我的是2.4.20版,服务名就是Apache2.4,可以到计算机服务里找,如下图)
提示288行有问题时(提示:Syntax error on line 288 of ...........Invalid command 'Order'......),如下图
- 为什么'Order' 有问题呢——版本问题
在Apache2.4版本中,提供了由mod_authz_host支持的新的访问控制配置语法。
而2.2版本中的Order、Allow等命令在新版本中也可以得到兼容,实现这个兼容功能的模块就是mod_access_compat。
所以Load这个模块后,apache2.4就能识别这些语句了。
此时apache重启成功,所以开心地去测试了,但是。。。
- 从字面意思理解,这应该是访问权限问题,注释掉Require all denied,如下
重启apache,测试成功