web-dev-qa-db-ja.com

CentOS Apache HTTPD構成(403禁止)

これは私の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が付与されます

8

CentOSのストックインストールを使用しています。それが正しい場合は、SELinuxが強制モードになっているかどうかを確認してください

getenforce

結果が「強制」の場合

一時的に許容に変更する

setenforce 0

もう一度やり直してください。Webコンテンツの状態をホームディレクトリのファイルに導くこともできます。

12
Freaktor

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/
9
IgoRRius

Freaktorの 'setenforce 0'の答えは私にとって「うまくいった」(ありがとう!)

しかし、それを機能させてSELinuxを再び有効にするために、私はする必要がありました

Sudo chcon -Rv --type=httpd_t /path/to/my/files

...これにより、私のディレクトリとその中のすべてのファイルとディレクトリに「httpd_t」のセキュリティコンテキストが与えられました。これは、SELinuxがhttpdにこれらのファイルを読み取らせるという不格好な方法です。

selinuxを再度有効にするのは、

setenforce 1
5
jg3

おそらく、グローバル構成のどこかにすべて拒否があります。これをvhostスタンザに追加してみてください。

<Directory /home/mcmoddr/www>
  Order allow,deny
  Allow from all
</Directory>
3
Alex Howansky

<Directory>上記のコンテナ。

そして、あなたはあなたのDocumentRootパスからチェックする必要があります、各ディレクトリはサービスユーザーApacheがアクセスできるように読み取り許可がなければなりません。

ls -ld

0
user533968