做网站找实速,专业网站制作设计平台
首页 > 课堂 > 网站技术 > 详情
网站标签 / Tags

DocumentRoot must be a directory 的解决办法

2019-01-20 05:02:50   来源:实速网络-网站建设|网站设计|网站优化|网站仿制|网站SEO|网站推广|空间域名|主机VPS|服务器|网站源码|网站模版   浏览: 次
今天在修改了一下httpd.conf文件的DocumentRoot目录后重启了httpd服务,却发现报错了。 DocumentRoot must be a directory 。刚开始以为是自己配置有问题

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

 

1、检查虚拟目录是否存在

 

   如果你的DocumentRoot目录设置设置的虚拟目录不存的话,apache服务会启动不起来的。

 

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

 

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

 

3、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 /data/coderbolg/

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

 

4、禁用SELinux

 

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

 
vim /etc/sysconfig/selinux

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

相关热词搜索: 上一篇:windows2003下IIS 6.0加载Rewrite.dll不成功的解决方法 下一篇:轻松写原创文章只需三步