" laravel.log"无法打开:无法打开流

时间:2014-06-05 08:17:53

标签: php laravel laravel-4

我在本地OSX机器上设置了Laravel宅基地,一切似乎都顺利进行,直到我尝试打开example.app:8000并出现此错误:

Error in exception handler: The stream or file "/home/vagrant/Code/example/app/storage/logs/laravel.log" could not be opened: failed to open stream: Protocol error in /home/vagrant/Code/example/bootstrap/compiled.php:8671

我跟随Laravel文件和Laracast关于建立宅基地,所以我不确定是什么原因引起的。我可以看到/home/vagrant/Code/example/app/storage/logs/laravel.log不存在,但我认为这应该是自动创建的?

7 个答案:

答案 0 :(得分:44)

您{group>数据(网络服

  

异常处理程序出错:流或文件" laravel / app / storage / logs / laravel.log"无法打开:无法打开流:laravel / vendor / monolog / monolog / src / Monolog / Handler / StreamHandler.php中的权限被拒绝:77

如果您在访问网站时在浏览器中收到此错误(或类似错误),则论坛app/storage无法写入www-data。如果在执行某些app/storage命令时出现此错误,则您(用户)无法写入php artisan。因此,您和www-data组都必须具有写入权限。


确保文件和文件夹具有正确的权限:

  1. 转到Laravel安装的根目录(app/storagecomposer.json住在哪里)。

  2. 更改拥有的用户和组,其中artisan是您的用户名:

    yourusername

    以递归方式(sudo chown -R yourusername:www-data app/storage )将用户:组所有者设置为-R以后的所有文件和文件夹中的yourusername:www-data

  3. 为您和app/storage组添加写入权限:

    www-data

    以递归方式(sudo chmod -R ug+w app/storage )将写入标记(-R)添加到用户(+)和组(w)中(u)拥有g以后的文件和文件夹。

  4. 此外,有些人建议您可能需要刷新应用程序缓存。

    app/storage
  5. 最后,您可能想要重新生成Composer的自动加载文件。

    php artisan cache:clear
    

答案 1 :(得分:4)

至于我,我已使用chmod -R 777 storage更改了我的存储空间权限,并且运行良好。

我已在here检查了此配置。

答案 2 :(得分:3)

您需要运行以下某项:

  • sudo chmod -R 644 app/storage
  • sudo chmod -R 755 app/storage

答案 3 :(得分:2)

如果按照其他答案中的说明更改文件权限并不起作用,并且您使用的是CentOS 7或RHEL,则问题可能是名为selinux的安全程序。在注意到{36 {3}}

的用户3670777回答之前,我在处理各种权限和群组时遇到了困难

希望这有助于其他人。

答案 4 :(得分:2)

您可以按照以下步骤

执行此操作
chmod -R 775 storage

表示

7 - Owner can write
7 - Group can write
5 - Others cannot write!

如果您的网络服务器没有以Vagrant身份运行,它将无法写入,因此您有2个选项:

chmod -R 777 storage

或将该组更改为您的网络服务器用户,假设它是www-data:

chown -R vagrant:www-data storage

答案 5 :(得分:-1)

如果All Above建议无效,请停用selinux并重试

答案 6 :(得分:-2)

我在laravel上很新。也许我无法深入解释它,但是该命令解决了我的问题。

chmod -R 777 storage/