これは私のhttpd.confにあるものです
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName mcmoddr.com
ServerAlias www.mcmoddr.com
DocumentRoot /home/mcmoddr/www/
ErrorLog /mcmoddr/logs/error.log
CustomLog /mcmoddr/logs/accesslog combined
</VirtualHost>
サイトにアクセスすると403 Forbiddenエラーが発生します。ファイルはvsftpdで追加され、権限drwxr-xr-xが付与されます
CentOSのストックインストールを使用しています。それが正しい場合は、SELinuxが強制モードになっているかどうかを確認してください
getenforce
結果が「強制」の場合
一時的に許容に変更する
setenforce 0
もう一度やり直してください。Webコンテンツの状態をホームディレクトリのファイルに導くこともできます。
SELinuxを無効にするか、ROOTで実行
setsebool -P httpd_enable_homedirs on
chcon -R -t httpd_sys_content_t /home/
chcon -R -t httpd_sys_rw_content_t /home/
Freaktorの 'setenforce 0'の答えは私にとって「うまくいった」(ありがとう!)
しかし、それを機能させてSELinuxを再び有効にするために、私はする必要がありました
Sudo chcon -Rv --type=httpd_t /path/to/my/files
...これにより、私のディレクトリとその中のすべてのファイルとディレクトリに「httpd_t」のセキュリティコンテキストが与えられました。これは、SELinuxがhttpdにこれらのファイルを読み取らせるという不格好な方法です。
selinuxを再度有効にするのは、
setenforce 1
おそらく、グローバル構成のどこかにすべて拒否があります。これをvhostスタンザに追加してみてください。
<Directory /home/mcmoddr/www>
Order allow,deny
Allow from all
</Directory>
<Directory>
上記のコンテナ。
そして、あなたはあなたのDocumentRoot
パスからチェックする必要があります、各ディレクトリはサービスユーザーApacheがアクセスできるように読み取り許可がなければなりません。
ls -ld