求apache出现访问403错误的根本原因以及解决
修改Apache 默认的DocumentRoot路径后,Apache启动失败,失败提示DocumentRoot must be a directory,但确认修改后的路径是目录,且具有linux读写权限。在网上查找了很多,大部分都是由于selinux权限机制引起的,网上的解决方法大多为以下两种:
1,修改目录权限,因为apache默认的用户和用户组为apache,该用户只能访问权限为httpd_sys_content_t 的目录文件,假设想把DocumentRoot改为目录/home/user/www,就修改该目录的权限,命令如下:
chcon -R -t httpd_sys_content_t /home/user/www
如此,就使得apache可以访问该目录
2,禁用selinux
编辑 /etc/sysconfig/selinux 把其中 SELINUX=enforcing 改为SELINUX=disable
保存后重启系统,问题解决
而我根据第一种方法修改权限后,服务器仍不能启动,禁用selinux后,服务器可以启动了,但浏览器访问时却出现了403错误,提示没有访问权限,真是愁死人了,但这个403错误是之前遇到过的,还好,直接把apache配置文件中的User 和Group的值都从apache 改为当前用户,问题解决,但对于问题的根本原因还是觉得很迷惘,权限都已经授好了,为什么该用户还是不能用呢,求高人解释!可否有其他解决方法?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我禁用了selinux,apache可以启动,但访问的时候还是会出现403错误,只有把apache中的User 和Group 改为当前用户访问时才不会出现这个错误,搞不明白~
我一般的做法是将SELinux给禁用了。
我的也是啊,自定义了一个500页面,总是报告403