在异常处理程序中发生错误。- Laravel
在异常处理程序中发生错误。- Laravel
这是一个与Laravel安装相关的问题。我有一个面向公众的Unix服务器设置:\n
ServerAdmin webmaster@mydomain.org DocumentRoot "/var/www/mydomain" ServerName mydomain.org ServerAlias www.mydomain.org ErrorLog "/var/log/mydomain.org-error_log" CustomLog "/var/log/mydomain.org-access_log" common
\n我可以正常从/var/www/mydomain中服务文档,例如:http://mydomain.org/test.php,其中test.php包含:\n
\n可以正常工作。\n在bash中,通过Composer安装了Laravel并查看文件:\n
# ls /var/www/mydomain/my-laravel-project .gitattributes CONTRIBUTING.md artisan composer.json phpunit.xml readme.md vendor .gitignore app bootstrap composer.lock public server.php\n所以当我浏览到:\n
http://mydomain.org/my-laravel-project/public/\n为什么我的应用程序报告:\n
Error in exception handler.\n在浏览器上是一个空白的白屏?我期望看到Laravel的启动画面。\n此外,日志文件也没有显示任何信息。
在Laravel中出现了一个错误,错误信息为"Error in exception handler."。我们来分析一下这个问题的出现原因以及解决方法。
原因:根据提供的信息,我们可以得出以下推测。首先,在app/storage/sessions
文件夹中删除了旧的会话信息。然后,将app/storage
文件夹的权限设置为775
。通过这两步操作后,问题得到了解决。
解决方法:根据上述的推测,我们可以得出解决方法如下:
1. 打开终端或命令行界面。
2. 进入项目根目录。
3. 输入以下命令,删除旧的会话信息:
rm -rf app/storage/sessions/*
4. 输入以下命令,修改app/storage
文件夹的权限为775
:
chmod -R 775 app/storage
5. 重新启动应用程序,问题应该得到解决。
通过删除旧的会话信息并修改app/storage
文件夹的权限,可以解决Laravel中出现的"Error in exception handler."错误。希望本文对您有所帮助。
在使用Laravel时,可能会遇到"Error in exception handler."这个错误。这个错误通常出现在设置了不正确的文件权限时,导致Laravel无法正常读取或写入文件。
解决这个问题的方法是修改文件夹的权限。对于Laravel 5.2版本,可以运行命令"chmod -R 777 storage"来修改storage文件夹的权限。对于旧版本的Laravel,可以运行命令"chmod 777 app/storage/*"来修改storage文件夹的权限。
需要注意的是,如果你的服务器只有你自己一个用户,并且安全性较高,777权限不会带来额外的安全风险。只有在存在其他不受信任的用户的共享服务器上,你需要考虑更复杂的权限设置或者咨询你的托管提供商是否已经提供了隔离措施。
此外,你可能需要在第一次加载后再次运行这些命令,因为Laravel会自动创建更多的目录。你可以查看日志文件是否有写入错误。
另外,你的DocumentRoot应该设置为"/path/to/laravel-project/public",这样才能正确运行Laravel应用程序。
需要注意的是,Laravel应用程序的正确运行方式不应该是通过访问"www.domain.com/project/public"来访问,而应该通过设置web服务器只服务于public/*目录,其中public/index.php是整个应用程序的唯一入口点。如果你使用的是Apache,你可以很容易地设置这个;如果你使用的是nginx,你可能已经知道该怎么做;如果你使用的是一个廉价的cPanel主机,你也可以很容易地设置web根目录指向public。
总之,建议不要使用777权限来解决这个问题,因为这违反了安全原则。应该使用更安全的权限设置来保护你的文件和应用程序。
在Laravel中出现了"Error in exception handler"的错误,这个问题的原因是app/storage文件夹没有被web服务器正确地访问和写入。解决这个问题的方法是将storage文件夹的所属组改成web服务器的组(通常是apache或者www-data)并将权限设置为775。
具体的解决方法如下:
1. 使用chgrp命令将storage文件夹的所属组改为web服务器的组:
chgrp -R www-data app/storage
或者使用chown命令:
chown -R :www-data app/storage
2. 确保storage文件夹的权限设置为775:
chmod -R 775 app/storage
根据Laravel官方网站的说明,app/storage文件夹需要被web服务器赋予写入权限。
在Mac系统中,上述命令可能不起作用,可以尝试使用以下命令:
sudo chown -R _www app/storage
然后给组赋予写入权限:
chmod -R g+w app/storage
在使用MAMP2时,如果遇到这个问题,可以在MAMP Pro的服务器/常规部分找到Apache用户名,将其作为所属用户。
在设置权限之后,可以通过删除app/storage/sessions目录下的旧会话文件来进行验证。
需要注意的是,确保chmod命令执行成功,可以通过ls -l命令来查看文件权限。有时候,如果在虚拟机中执行chmod命令失败,可以在主机中执行命令来解决这个问题。
通过以上方法,你可以解决"Error in exception handler"错误,并正确地配置Laravel的文件夹权限。