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件のコメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください