1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

chmod 777しているはずなのにファイル書き込みができない @ apache

Last updated at Posted at 2025-09-08

標題の通りです。非常に古風な悩みと言えばそうかもしれませんが……。

運用の関係でコンテナ環境にコンバートできず某和製VPSへ置くこととなった、Laravel 5世代サイトのサーバー移行案件が発生し、粛々と作業しているときのこと。

取り急ぎソースコードの移行・設定作業が一通り完了し、導通チェックを実施し始めたとき、Laravelの画面にて以下のエラーが発生しました。

The stream or file "storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied

このエラー自体は何度も見ているものなので、最初は「はいはい、storage/logs配下のパーミッション付ければいいんでしょ」くらいに思っていたのですが……。
いくらchmodを叩いても、chownを叩いてもエラーが収まらない。さてどうしたものか……。

ということで、ちょっと試行錯誤しましたという備忘録です。

環境

  • CentOS 10
  • Apache 2.4
  • Laravel 5.6 on PHP 7.4

結論

SELinuxのせいでした。
余談ですが、「SELinux」という単語、片手で数えられない程度の年数ぶりに聞いた……。
AWSとサーバーレスに慣れると、インフラの知識は根こそぎ消えていきますね。シランケド。

試したこと

  • 新しくユーザーを作成し、そこから該当のディレクトリのファイルをいじってみる
    • これはうまくいった
    • いっぽうで、sudo -u apacheでファイル操作を試みるとPermission Deniedが出る
    • ということで、Apacheユーザー固有の事象と切り分け
  • ↑の情報をもとに適当に30分くらいググってみると、以下解決方法に出会った

解決方法


詳細はこちらを参照。
普通にSELinuxの設定をいじるか、思い切ってオフにするかどちらかです。
(今回のケースはそこそこな規模のproduction環境なので、仕方なく遠い記憶を引っ張り出しながらSELinuxの設定をいじりました……めんどくさかった……)

まとめ

CentOSをイチからいじったのは何年ぶりのことか。「運用」という二文字が重くのしかかる日々……。
古風なLAMP環境はかえってドキュメントが少なすぎて、そこそこ構築に困ります。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?