apache2.4配置虚拟目录

时间:2024-04-02 16:00:28

刚开始学习,跟着韩顺平老师的视频课件学习ing~

这是自己在配置虚拟目录时遇到的问题以及解决办法,记录下来~

---------------------------分割线君-------------------------------

我的apache安装目录为E:\apache\Apache24

想要配置的目录为D:\myblog 中的网页文件

  • step1 添加虚拟目录节点

找到E:\apache\Apache24\conf 中的httpd.conf文件,增加下图红框中代码

apache2.4配置虚拟目录

  • step2 注释documentroot路径

apache2.4配置虚拟目录

  •  step3 测试(先重启apache)

http://localhost:8080/myblog 

按照韩老师的教程,理论上这样是可以成功的了。但是我测试时出错了,此时意识到可能是版本不同的问题,我的是2.4版,韩老师是2.2版~

接下来找错~

--------------------------------分割线君-----------------------------------------------------------------------------------------------------------

  • 此时重启apache出错,如下图

apache2.4配置虚拟目录

  • 检查错误原因,因为我只是修改了httpd.conf文件,所以一定是该文件问题,所以查找具体哪句代码问题。

方法:进入cmd 然后进入 Apache安装目录(具体为你自己的安装目录)\bin>

输入 httpd.exe -w -n "Apache2.4" -k start

(引号中的Apache2.4修改为你的Apache服务名,我的是2.4.20版,服务名就是Apache2.4,可以到计算机服务里找,如下图)

apache2.4配置虚拟目录

提示288行有问题时(提示:Syntax error on line 288 of ...........Invalid command 'Order'......),如下图

apache2.4配置虚拟目录

  • 为什么'Order' 有问题呢——版本问题

在Apache2.4版本中,提供了由mod_authz_host支持的新的访问控制配置语法。

而2.2版本中的Order、Allow等命令在新版本中也可以得到兼容,实现这个兼容功能的模块就是mod_access_compat。

所以Load这个模块后,apache2.4就能识别这些语句了。

apache2.4配置虚拟目录

此时apache重启成功,所以开心地去测试了,但是。。。

apache2.4配置虚拟目录

  • 从字面意思理解,这应该是访问权限问题,注释掉Require all denied,如下

apache2.4配置虚拟目录

重启apache,测试成功

apache2.4配置虚拟目录