Apache が新しいドキュメント ルート ディレクトリを使用していない

Apache が新しいドキュメント ルート ディレクトリを使用していない

Centos 7 に Apache Web サーバーをインストールし、有効にしましたmod_ssl。しかし、デフォルトのドキュメント ルートを新しいもの (たとえば/home/user/public_html) に変更しようとすると、ページが表示されます403 Forbidden。ディレクトリの権限が原因だと思うのですが、どうすればいいのか、どのように変更すればいいのかわかりません。どうすればいいでしょうか。どんな助けでもいただければ幸いです。

答え1

ドキュメント ルートをユーザーのホーム ディレクトリに置かないでください。これはさまざまな理由で安全ではありません。また、SELinux はデフォルトで、Web サーバーがユーザーのホーム ディレクトリ内のファイルを読み取ることを許可しません。 などの SELinux が認識するディレクトリを使用し、/srv/wwwその下に各仮想ホスト用のディレクトリを作成し、コンテンツにアクセスする必要があるユーザーに適切な権限と ACL を付与します。

何らかの理由で適切な方法に従うことができず、Web サーバーにユーザーのホーム ディレクトリのコンテンツを読み取らせる必要がある場合は、httpd_read_user_contentブール値を設定できます。

setsebool -P httpd_read_user_content 1

ただし、セキュリティ上の理由から、SELinux はユーザーのホーム ディレクトリへの書き込みを決して許可しないので、コンテンツの書き込みを想定する Web アプリケーション機能 (ユーザーによるアップロードなど) は動作しません。 などの別のディレクトリの下では/srv/www、書き込み可能である必要があるディレクトリにタイプ を指定できますhttpd_sys_rw_content_t

関連情報