异常处理程序错误-Laravel

这是一个与 Laravel 安装相关的问题,我有一个面向公众的 Unix 服务器设置:

<VirtualHost *:80>
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
</VirtualHost>

I can serve documents fine out of /var/www/mydomain i.e. http://mydomain.org/test.php with test.php containing:

<?php echo 'test';

works fine.

在 bash 中,通过 Composer 安装 Laravel 并查看文件:

# 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

所以当我浏览:

http://mydomain.org/my-laravel-project/public/

为什么我的申请报告:

Error in exception handler.

in the browser - on a blank white screen? I'm expecting to see the Laravel splash screen.

此外,日志文件也不会显示任何内容。

95511 次浏览

更安全的选择是将存储目录组更改为 Web 服务器组(通常是 apachewww-data,但这在不同的操作系统之间可能有所不同) ,并将目录的权限保留为 775

chgrp -R www-data app/storage

或者 chown

chown -R :www-data app/storage

然后确保目录权限是 775

chmod -R 775 app/storage

来自 Laravel 网站:

Laravel 可能需要配置一组权限: 文件夹 在应用程序/存储内需要 Web 服务器的写访问。

Laravel 5.2

Chmod-R 777存储器

老 Laravel Chmod 777应用程序/存储/*

注意,如果你有一个合理锁定的专有服务器,除了你自己的帐户之外没有其他用户,777不应该比其他任何帐户带来更多的安全风险。恶意用户必须有其他漏洞才能利用这一点,在这一点上,777权限可能无论如何都是没有实际意义的。但是,如果您与其他不信任的用户共享服务器,那么您需要查看更复杂的权限或检查宿主提供商是否已经提供了隔离。

他们真的应该把这个放在快速启动文档中,并为各种设置提供示例。您可能还必须在第一次加载后再次运行它,因为会自动创建更多的目录。在日志中查找写入错误。

另外,DocumentRoot 应该是/path/to/laravel-project/public

我也有同样的问题,我只是用 Chmod 命令行将目录 app/Storage 的权限更改为775

I deleted old sessions inside app/storage/sessions folder and give a 775 permission to app/storage after that it's working like a fire!

chmod -R 775 app/storage

祝你好运!

解决这个问题的最简单方法是从 sudo 开始使用 Artisan。这将给工匠所有的权限,它需要,也不会造成任何安全问题。

因此,相反,开始工匠服务:

$ php artisan serve

尝试使用:

$ sudo php artisan serve

因此,您不必进行任何权限更改

这种潮流很久以前就已经过去了,但我仍然有另一条关于“异常处理程序中的错误”的建议

我在运行“ php Artian”时遇到了这种情况,这是评估您的环境是否正常工作的好方法。

我运行它,它给了我那个错误,我不能确定问题,直到我编辑了我的项目的根目录的工匠文件,并添加了一个 try catch 语句:

try {
$artisan = Illuminate\Console\Application::start($app);
}
catch (Exception $e)
{
dd($e->getMessage());
}

这时,我终于看到了一条启发性的信息:

string(41) "Connection refused [tcp://127.0.0.1:6379]"

在我的情况下是一个糟糕的重排配置,但在你的情况下可能是任何东西。

我希望这对某人有所帮助,或者至少下次我来这里的时候,我会找到我自己的答案。