linux+apache啟動提示"Document root must be a directory"

來源:互聯網
上載者:User

解決辦法:

方法一:

把目錄或檔案的策略類型改成 httpd_sys_content_t 就可以了。
# chcon  -R -h -t httpd_sys_content_t  /www/web/
然後可以用 ls -laZ 命令查看檔案目錄的策略類型。


方法二:

禁用SELinux
linux系統貌似還有個SElinux安全機制,查看一下狀態吧。

[root@localhost home]# 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 release 6.2

將DocumentRoot改為 /home/godontop/www 後提示:

Starting httpd: Syntax error on line 293 of /etc/httpd/conf/httpd.conf:
DocumentRoot must be a directory

[root@sl ~]# getsebool -a |grep httpd_enable_homedirs 

httpd_enable_homedirs --> off

原來是SELinux不允許使用home目錄作為web目錄!

修改 SELinux 設定

view sourceprint?1 [root@sl ~]# setsebool httpd_enable_homedirs on

之後重啟apache,一切正常

[root@sl ~]# service httpd restart 

Stopping httpd:                                            [  OK  ] 

Starting httpd:                                            [  OK  ]

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.