[nginx]open() failed (13: Permission denied)で泣きそうになった

はじめに

本日の08:00~09:30頃まで当サイトが404エラーでページが表示されなくなっていました。

nginx再起動をしたところ、この状態になってしまいました。

 

エラーログを確認

エラーログを確認したところ下記のようなエラーが発生していました。

[crit] open() "/hogehoge_html/DocumentRoot/index.php" failed (13: Permission denied), client: xxx.xx.x.xx, server: www.kabanoki.net, request: "GET / HTTP/1.1", host: "www.kabanoki.net"

 

ファイルのパーミッションを変更

エラーのログに(13: Permission denied)とあるので、権限に問題があるのかな?と試しにindex.phpパーミッション777に変更するも404から変わらず・・・

 

やけくそでディレクトリのパーミション変更

だんだん視界が滲んできたので、やけくそでルートディレクトリまでパーミッションを変更してみました。

home 701 -> 711
sitename 701 -> 711
sitename_html 701 -> 755
DocumentRoot 711 -> 755

 

これでアクセスしてみると・・・

 

キターーー!!

 

なんとかサイトが表示されるところまで辿り着きました!

 

原因

nginxを再起動しただけでパーミッションの問題が起きるのはおかしいなと調査してみると・・・

usermod -G hoge httpd
usermod -G hoge www
usermod -G hoge nginx

 

あっ・・・

グループ追加に-aを付け忘れてる・・・

-aがないとセカンダリグループが置き換えられます。

 

これだね・・・

 

まとめ

  • nginxPermission deniedのエラーを発生させていたら権限が問題
  • グループ追加でusermodには必ず-aを付与する

 

  • この記事を書いた人

カバノキ

印刷会社のWEB部隊に所属してます。 WEB制作に携わってから、もう時期10年になります。 普段の業務では、PHPをメインにサーバーサイドの言語を扱っています。 最近のお気に入りはJavascriptです。 Vue.jsを狂喜乱舞しながら、社内に布教中です。

-レンタルサーバー
-, , , , , ,