异常处理程序出错。 - Laravel

时间:2014-04-20 19:58:58

标签: apache 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>

我可以使用包含以下内容的test.php来提供/ var / www / mydomain中的文档,例如http://mydomain.org/test.php

<?php echo 'test';

工作正常。

在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. 
浏览器中的

- 在空白的白色屏幕上?我期待看到Laravel的闪屏。

此外,日志文件也没有显示任何内容。

6 个答案:

答案 0 :(得分:244)

更安全的选项是将存储目录组更改为您的Web服务器组(通常为apachewww-data,但这可能因不同的操作系统而异)并将权限保持为目录为775

chgrp -R www-data app/storage

chown

chown -R :www-data app/storage

然后确保目录权限为775

chmod -R 775 app/storage

来自Laravel web site

  

Laravel可能需要配置一组权限:文件夹   在app / storage中,需要Web服务器进行写访问。

答案 1 :(得分:18)

Laravel 5.2

chmod -R 777存储

年长的Laravel chmod 777 app / storage / *

请注意,如果您拥有一个合理锁定的专用服务器而没有自己的用户帐户,则777不应构成任何其他安全风险。恶意用户必须有一些其他漏洞才能利用这一点,而在这一点上,无论如何,777许可可能都没有用。但是,如果您与其他不信任的用户在共享服务器上,那么您需要查看更复杂的权限或检查您的托管服务提供商是否已提供隔离。

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

你的DocumentRoot也应该是/ path / to / laravel-project / public

答案 2 :(得分:2)

我删除了app/storage/sessions文件夹中的旧会话,并在775之后授予app/storage权限,之后它就像火一样!

chmod -R 775 app/storage

祝你好运!

答案 3 :(得分:1)

很久以前,这个潮流已经过去了,但我仍然有另外一条关于&#34;异常处理程序错误的建议。&#34;

当我运行&#34; php artisan&#34;时,我发生了这种情况,这是评估您的环境是否正常运行的好方法。

我跑了它并且它给了我这个错误,在我编辑项目根目录中的工匠文件并添加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]"

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

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

答案 4 :(得分:0)

解决这个问题的最短途径是与sudo一起开始工匠。这将为工匠提供所需的所有权限,也不会造成任何安全问题。

所以开始工匠服务:

$ php artisan serve

尝试使用:

$ sudo php artisan serve 

因此您无需进行任何权限更改

答案 5 :(得分:-5)

我遇到同样的问题,我只是使用 chmod命令行将目录app / storage的权限更改为775