解决httpd.conf:DocumentRoot must be a directory报错问题

   今天在修改了一下httpd.conf文件的DocumentRoot目录后重启了httpd服务,却发现报错了。 DocumentRoot must be a directory 。刚开始以为是自己配置有问题,后来检查了好一遍并确认配置的DocumentRoot就是一个directory啊。哎,只好baidu一下了。呵呵, 看来遇到过这种报错的人还真不少啊。总结起来有两种可能导致了DocumentRoot must be a directory报错。

1、DocumentRoot的目录配置中带有中文

如果你的DocumentRoot目录设置中有中文的话,请先修改成英文的试试吧。哈哈……如果还不行的话就请接着往下看吧。

2、SELinux的安全策略搞得鬼啊

这是因为系统启用了SELinux安全策略之后会把目录或文件设成各种类型, 如home_root_t和user_home_t类型等。因些apache的进程就没有权限而无法访问你刚才设置的DocumentRoot了。针对 Apache的进程SELinux的安全策略规定只能访问 httpd_sys_content_t 类型的目录或文件。所以把目录或文件的策略类型改成 httpd_sys_content_t 就可以了。修改命令如 下:

chcon -R -h -t httpd_sys_content_t /home/jianbao/htdocs

可以用  ls -laZ 来查看目录的策略类型是否修改成功。做好了这一步如果还报错,呵呵……那还得往下看。

(注意:我就是用这个方法,才把问题给解决!)

3、禁用SELinux

如果你真的被SELinux折磨的没有办法了。那就直接禁用SELinux吧。系统的不安全总比服务器不能访问的权重要低些吧。直接编辑SELinux的配置文件。

vim /etc/sysconfig/selinux

把SELINUX的值从enforcing改成disabled就行。存盘退出。这回一定可以了,如果还不可以就重启一下服务器吧。


 

 

 

posted @   52linux  阅读(3271)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示