web-dev-qa-db-ja.com

Laravel 5エラーログを取得していません

新しいVPSにLaravel 5をインストールしました。すべて正常に実行していましたが、Laravelエラーが発生してシステムがサーバーを起動するだけであることに気付きました。私のコードをデバッグするときに役に立たない500エラー。

laravel storage/logを調べたところ、777の正しいファイルパーミッションを設定していたので、奇妙なことに空でした。

では、どうすればlaravelログを取得できますか?なぜログがstorage/logファイルに書き込まれないのですか?.

10
SamXronn

_/storage_ファイルディレクトリでファイルのアクセス許可を正しく設定し、共有ホスティングのないVPSで実行している場合は、_var/log/Apache2/error.log_内のApacheログを確認することをお勧めします。

ここでは、_/var/www/html/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied_の行に沿って何かを読み取る行が表示される場合があります

あなたは正しいファイルパーミッションを持っているので、これは奇妙です...

laravelが通常インストールされているディレクトリへのVPSヘッドへのSSH接続から始めましょう_cd /var/www/html_

ここで_ls -l_を実行すると、以下の画像のような結果が得られるはずです: enter image description here

Rootユーザーとしてサイトにアクセスしていることに注意してください。これが問題であり、_ps aux | grep Apache2_を実行することで確認できます。

enter image description here

ここで、Apache2がユーザーwww-dataとして実行されていることがわかります。これはApacheでは正常です。つまり、laravelインストールが、->move()を使用してファイルを移動しようとした場合、またはログファイルを書き込もうとした場合、www-dataユーザーに権限がないため失敗します。したがって、次のコマンドを実行して、この_www-data_ユーザーに変更できます。_chown -R www-data:www-data *_(同じユーザー/グループの省略形_chown -R www-data. *_)

これで、_ls -l_ディレクトリで_www/html_を実行すると、rootユーザーがwww-dataに変更されたことがわかります。

enter image description here

これは、権限を持つwww-dataユーザーとしてファイルを編集していたことを意味します。したがって、SFTPを介して行う変更には、このユーザーの変更が反映されている必要があります。修繕!

編集-私が自分の質問に答えたのはこれが初めてです。うまくいけば大丈夫です。

10
SamXronn