我在一个新的VPS上安装了Laravel 5,我运行的一切都很好但是我注意到我没有得到任何Laravel错误,系统只会在我发出服务器500错误时调试我的代码没有帮助。
当我查看laravel storage/log
时,它是空的,这很奇怪,因为我设置了777
的正确文件权限。
那么如何获得laravel日志?为什么不将它们写入我的storage/log
文件。
答案 0 :(得分:8)
如果您在/storage
文件目录上正确设置了文件权限,并且您在VPS上运行没有共享主机,则可能需要检查您的apache日志,var/log/apache2/error.log
在这里,您可能只看到一行读取/var/www/html/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied
这很奇怪,因为你有正确的文件权限......
让我们从SSH进入你的VPS头开始到正常安装laravel的目录cd /var/www/html
在这里,如果你运行ls -l
你应该得到一些类似于下图的结果:
请注意我们是如何以root用户身份访问网站的,这是我们的问题,我们可以通过运行ps aux | grep apache2
你可以在这里看到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:
这意味着现在将文件编辑为具有权限的www-data用户,因此您通过SFTP进行的任何更改都应反映此用户更改。固定!
编辑 - 这是我第一次回答自己的问题,希望没关系。