正しい解決策ではないと思うのですが、結構時間かかったので自分用メモとして残しておく。
開発環境へ反映し、サーバ上で下記コマンドを実行した。
$ php artisan queue:work [error] file_put_contents(../storage/framework/cache/data/ee/2f/ee2f842aa7bb1f53edf3a2ed2c09a1807ffa6c90): failed to open stream: No such file or directory
おやっ・・・?
まず調べてみると、「2f/ee2f842aa7bb1f53edf3a2ed2c09a1807ffa6c90」が存在しなかった。
cacheなんだから自動で作られるんじゃ・・・?と暫く悩んだのですが、
cacheディレクトリの権限が755、所有者がapacheのため、apache以外のユーザでQueueを実行するとcacheが生成できなかったようです。
正しい解決策ではなさそうですが、要はapacheユーザでコマンドを実行してあげれば良いので、
apacheユーザになってQueueを実行してみました。
$ sudo su -s /bin/bash apache $ cd projectディレクトリに移動 $ php artisan queue:work
無事cacheが生成されました。
次に、再びapache以外ユーザでQueueを実行すると下記のエラーが発生しました。
$ php artisan queue:work [error] UnexpectedValueException : The stream or file “../storage/logs/laravel-2020-03-24.log” could not be opened: failed to open stream: Permission denied
こちらも色々調べてみると、権限644、所有者apacheで「laravel-2020-03-24.log」が生成されているのに対し、
Queueを実行しようとしているユーザがapacheユーザではないため発生していました。
こちらも上述した方法で一旦解消しました。
今の所、
最終的にはSupervisorを使ってapacheユーザで実行して解消しようと考えています。
もともとmigrationなど実行しない想定で作られていて、そこら辺を考慮したインフラ設定になっていないのでは・・・?
とも思っています。詳しくないので、そこら辺も分かるようになりたいところです。