CentOS7のサーバで、これまでWWWサーバ(httpd)を動かしていなかったのですが、httpd を起動してブラウザからアクセスしたらパーミッション関係のエラーが表示されてしまいました。
httpdの起動は下記のように行いました。特に設定は変更していませんが、エラーが表示されなかったので起動したと判断しました。
sudo systemctl start httpd
ブラウザから http://xx.xx.xx.xx/es/ などにアクセスすると error_log にパーミッションのエラーが記録されていました。
[Mon Apr 02 11:49:18.729539 2018] [core:error] [pid 26369] (13)Permission denied: [client x.x.x.x:49677] AH00035: access to /es/index.php denied (filesystem path ‘/var/www/html/es/index.php’) because search permissions are missing on a component of the path
ファイルを指定せずにディレクトリを指定すると下記のようなメッセージになりました。
[Mon Apr 02 11:52:55.548063 2018] [autoindex:error] [pid 26368] (13)Permission denied: [client x.x.x.x:50337] AH01275: Can’t open directory for index: /var/www/html/es/
これは SELinux の制限がかかっているためで、SELinux の制限を解除すればエラーはなくなります。
SELinux の状態を確認してみます。
getenforce
Enforcing
SELinux が有効になっているようです。SELinux を一時的に解除するには下記のコマンドを実行します。
sudo setenforce 0
SELinux の状態を確認してみます。
getenforce
Permissive
SELinux の状態を永続化するには /etc/selinux/config を編集し enforcing を disabled に変更します。
SELINUX=disabled
ファイルを変更した場合は、システムを再起動すると反映されます。
0件のコメント