Laravel 5 - ErrorException无法打开流:权限被拒绝

时间:2016-04-06 19:41:01

标签: laravel laravel-5.1

我只是git clone我的一个包含Laravel 5.1项目的存储库。我已经完成了正常的步骤来启动和运行(设置webserver,db等)。我现在已经转到我配置的网址,我收到以下错误消息:

ErrorException in compiled.php line 6648:
file_put_contents(/3c7922efc24ab13620cd0f35b1fdaa61): failed to open stream: Permission denied

任何想法都是它试图访问的文件夹?

9 个答案:

答案 0 :(得分:6)

要解决此问题,我需要创建一些我的安装中缺少的文件夹。您需要以下文件夹才能由您的www用户读取和写入:

/storage
/storage/cache
/storage/framework
/storage/framework/sessions
/storage/framework/views
/storage/framework/cache
/storage/logs

另外,将文件夹权限设置为775。从根目录运行命令:sudo chmod -R 755 storage

答案 1 :(得分:3)

我用此解决方案解决了这个问题,澄清了,如果您使用Windows,则应用第1行和第3行,其工作原理相同。

await channel.send(message.content(608999881578774540))

答案 2 :(得分:1)

如果你正在使用ubuntu,很可能你必须授予该文件夹存储的权限

进入项目并进入 使用命令 - > sudo chmod 755存储/ *

答案 3 :(得分:1)

我最近在测试中遇到了这个问题,并通过以下方式解决了这个问题:composer dump-autoload

答案 4 :(得分:0)

对我来说,这是因为单个文件是root拥有的...在设置文件时写的某个时候,应用无法读取它。解决方案可能是更改所有权,放弃所有权等等。

答案 5 :(得分:0)

我的 localhost 中有类似的问题,问题是我试图在我的 php.ini 文件中上传大于upload_max_filesize的文件。  只是将其更新为更大的值并重新启动服务器即可解决问题,如果您遇到类似的问题,则可能是这种情况

答案 6 :(得分:0)

对我来说,解决方案是更改laravel项目的文件夹所有者。确保该用户是您自己的用户,而不是root:www-data。

sudo chown -R username:group directory

答案 7 :(得分:0)

如果您使用的是Linux(centos),这是您需要做的 我假设使用默认的nginx目录,但是您的目录可能是apache,它也应该适用[只需相应地更改路径]。

sudo chcon -R -t httpd_sys_rw_content_t /usr/share/nginx/html/my-site/dir-to-make-writeable
cd /usr/share/nginx/html
sudo chown -R nginx:nginx ./my-site

这应该为Web目录设置适当的上下文

答案 8 :(得分:0)

如果没有任何帮助,并且如果您使用 docker 在 Windows 上工作,则可能是符号链接错误的问题,您可以尝试:

ln -s /var/www/storage/app/public /var/www/public/storage

然后:

chown -R $USER:www-data storage

chmod -R 777 storage

在 docker bash 上。