Vagrantで作った環境だと権限変更してもPermission deniedが出てしまった
※途中で日付設定を変更したのですが、本筋と関係ないので省きます。
本番環境とほぼ同様にLaravel導入できたし、さっそくアクセスするぞ~ととりあえずpublicにアクセスしてみたら
http://192.168.33.10/laravel/public/
The stream or file "/var/www/html/laravel/storage/logs/laravel-2019-01-05.log" could not be opened: failed to open stream: Permission denied
と左上に書かれたページが
この画面はLaravelのエラー画面なので、Laravelを入れることには成功してそうなのですが、
Permission
ということは権限エラー?
ここでいったんLaravelの公式ドキュメントを見てみます。
Laravelをインストールした後に、多少のパーミッションの設定が必要です。storage下とbootstrap/cacheディレクトリをWebサーバから書き込み可能にしてください。設定しないとLaravelは正しく実行されません。Homestead仮想マシンを使用する場合は、あらかじめ設定されています。
なるほど?
指示に従って、storage
とbootstrap/cache
配下をすべて権限変更してみます。
開発環境なので、特定のグループに属していれば書き込み可能としてしまいます。
私の場合はApacheがWebサーバになるので、storage
とbootstrap/cache
の所有グループにapache
を追加してあげればいいはずです。
pwd
/var/www/html/laravel
ll
ll total 444 drwxrwxr-x. 6 vagrant vagrant 4096 Dec 16 18:37 app -rw-rw-r--. 1 vagrant vagrant 1686 Dec 16 18:37 artisan drwxrwxr-x. 3 vagrant vagrant 4096 Dec 16 18:37 bootstrap -rw-rw-r--. 1 vagrant vagrant 1550 Dec 16 18:37 composer.js -rw-rw-r--. 1 vagrant vagrant 177474 Dec 16 18:37 composer.lo drwxrwxr-x. 2 vagrant vagrant 4096 Dec 16 18:37 config drwxrwxr-x. 5 vagrant vagrant 4096 Dec 16 18:37 database -rw-rw-r--. 1 vagrant vagrant 1125 Dec 16 18:37 package.jso -rw-rw-r--. 1 vagrant vagrant 1138 Dec 16 18:37 phpunit.xml drwxrwxr-x. 5 vagrant vagrant 4096 Dec 16 18:37 public drwxrwxr-x. 6 vagrant vagrant 4096 Dec 16 18:37 resources drwxrwxr-x. 2 vagrant vagrant 4096 Dec 16 18:37 routes -rw-rw-r--. 1 vagrant vagrant 563 Dec 16 18:37 server.php drwxr-xr-x. 5 vagrant vagrant 4096 Dec 16 18:37 storage drwxrwxr-x. 4 vagrant vagrant 4096 Dec 16 18:37 tests drwxrwxr-x. 45 vagrant vagrant 4096 Dec 16 18:45 vendor -rw-rw-r--. 1 vagrant vagrant 537 Dec 16 18:37 webpack.mix -rw-rw-r--. 1 vagrant vagrant 205286 Dec 16 18:37 yarn.lock
storage
とbootstrap/cache
の所有グループはvagrant
のようですね。
では、apache
の所属グループを確認してみましょう。
groups apache
apache : apache
apache
グループのみのようなのでvagrant
を追加します。
usermod -aG apache vagrant
groups apache
apache : apache vagrant
最後に、所有グループにも書き込み権限を付与します。
sudo chmod -R 775 bootstrap/cache/
sudo chmod -R 775 storage
ll
以下抜粋
drwxrwxr-x. 3 vagrant vagrant 4096 Dec 17 03:37 bootstrap drwxrwxr-x. 5 vagrant vagrant 4096 Dec 17 03:37 storage
権限変わってますね!
これで当初の権限エラーも直ってるはず!
と
思っていたのですが、
The stream or file "/var/www/html/laravel/storage/logs/laravel-2019-01-05.log" could not be opened: failed to open stream: Permission denied
同じエラーが出ます。
もしかするとVagrantで共有フォルダをしっかり決めていないことが原因?と思ったので、次の記事に続きます。
解決方法までまとめられずに申し訳ありません……。
追記
CentOS7.4上でLaravelプロジェクトを動かすための環境を作る - Qiita
こちらの記事の手順で実行することで、成功しました…!
ありがとうございます。
chcon
コマンドが大切なようですね……。
詳しいことが分かり次第、別記事でまとめます。