xywuyiba8 发表于 2018-11-23 13:23:17

apache启动提示Document root must be a directory

  解决办法:
  方法一:
  把目录或文件的策略类型改成 httpd_sys_content_t 就可以了。
  # chcon-R -h -t httpd_sys_content_t/www/web/
  然后可以用 ls -laZ 命令查看文件目录的策略类型。
  方法二:
  禁用SELinux
  linux系统貌似还有个SElinux安全机制,查看一下状态吧。
  # getenforce
  Enforcing
  果然SElinux被开启了,而且还是强制模式。
  目录被设成了user_home_t类型,apache的进程没有权限,无法访问。
  针对Apache的进程所使用的SELinux target policy规定了apache的进程只能访问httpd_sys_content_t类型的目录或文件。所以只要修改相关的权限就可以了。 解决办法:
  1.更改文件夹权限
  chcon-t httpd_sys_content_t /home/www/
  chcon-t httpd_sys_content_t /home/www/html/
  然后ls -Z查看目录权限
  看,权限被改为httpd_sys_content_t了吧。这样就可以启动httpd了。
  2.关闭SElinux关闭SElinux的话需要重启系统,
  修改方法为:vi /etc/selinux/config修改SELINUX=disabled
  然后重启系统就关闭SElinux了。
  ++++++++++++++++++++++++++++++++++++++++++++++++
  另外一篇参考文章:
  apache提示DocumentRoot must be a directory

  系统环境:Scientific Linux>  将DocumentRoot改为 /home/godontop/www 后提示:
  Starting httpd: Syntax error on line 293 of /etc/httpd/conf/httpd.conf:
  DocumentRoot must be a directory
  # getsebool -a |grep httpd_enable_homedirs
  httpd_enable_homedirs --> off
  原来是SELinux不允许使用home目录作为web目录!
  修改 SELinux 设定
  view sourceprint?1 # setsebool httpd_enable_homedirs on
  之后重启apache,一切正常
  # service httpd restart
  Stopping httpd:                                          
  Starting httpd:                                          

页: [1]
查看完整版本: apache启动提示Document root must be a directory