index.htmlが403エラーになる(原因はSELinux) | ライタス株式会社

Webサーバーを作っているときに、「設定はあっているはずなのに!」と思うことが結構あります。
だいたい、そう言う場合は、設定が間違っているので、大人しく、全部見直すしかないのですが、他所にあるTipsが助けになることがあります。

今回もそんな例かと思いますので、Tips的に書いておきたいと思います。

CentOSでNginxをインストールし、サクッとサイトを作っていたときのことです。
何気なく、/home/ディレクトリにHTMLをアップし、ドキュメントルートにファイルを配置したところ、403エラーとなり、参照できない状況になりました。
index.htmlすら見えなくなったので、かなり焦りました。

アクセス権やユーザーなどの設定を確認したのですが、どうにもアクセスできるようになりませんでした。
コマンドでファイルを作成したら、そのファイルはブラウザ経由で閲覧できるので、さっぱり糸口が見えなかったのですが、
ここで、SE Linuxが有効になっていることに気がつき、試しに無効化してみたところ、うまく表示ができたので、原因切り分けが無事できました。

SELinuxを無効化して運用してもいいのですが、できれば無効化したくないので、なんとかする方法を調べていたところ、restoreconコマンドを使えば良いと言うことがわかりました。

# restorecon -R /var/www/html

どうやら、/homeからコピーしていると、httpdがアクセスできるフォルダと認識しなくなるようですので、その場合は、restoreconコマンドで再度セキュリティコンテキストを付け替えてあげれば良いようです。

chconコマンドでセキュリティコンテキストを変更している場合は、その設定も消えてしまうので、要注意です。


コメント

このブログの人気の投稿

Firefoxを起動したら、Couldn't load XPCOM. というエラーが出る時の対処法 | ライタス株式会社

マテビュー(マテリアライズドビュー:Materialized View)のせいで、表領域が削除ができない | ライタス株式会社

squidでresolv.confが適用されない | ライタス株式会社