私はLinuxに初めて触れました。 Nginxを使用してCentOS 7 VPSで複数のWebサイトをホストしたいです。
Nginxは起動時に起動する必要がありますが、一部の権限の問題により失敗します。どのファイルが問題なのかはわかりますが、Nginxを幸せにするにはどのような権限が必要かわかりません。
何が起こったのか調べました。スクリーンキャスト。
私は何を見逃していますか?スクリーンキャストに示すように、nginx:nginx
サイトディレクトリ内のすべてのファイルの設定ユーザーとグループがあります。
www-data
Nginxには独自の(nginx:nginx
)があるため、ユーザーとグループは必要ないとします。
ベストアンサー1
CentOSはSELinuxを使用してhttpサーバーを制限します。デフォルト以外の構成(通常ではない場所のログファイル、サーバー側スクリプトの有効化など)を使用している場合は、SELinuxポリシーを調整する必要があります。
SELinuxは/var/log/audit/audit.log
監査ログ()にポリシーへのアクセスを拒否し、アドバイスとポリシーを作成するための基本的なツールには、およびがaudit2why
含まれますaudit2allow
。
SELinux権限の問題を解決する一般的な手順には、ポリシーブール調整またはファイルラベルルールの追加と適用が含まれます。私はこのトピックの問題をより一般的で詳細に説明しました。 デーモンがデフォルトの場所ではなく場所にあるファイルを使用できるようにSELinuxを構成する。
推奨事項を確認することをお勧めしますaudit2allow
。ブールポリシーオプションを有効にすると、問題を解決できます。ブール調整だけでは不十分な場合は、ファイルのラベル付け規則を追加する必要があります。正しいファイルコンテキストについては、次を参照してください。httpd_selinux
マンページ。