Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 777之后“无法打开流:权限被拒绝”我的整个应用程序_Php_Linux_Laravel_Laravel 5 - Fatal编程技术网

Php 777之后“无法打开流:权限被拒绝”我的整个应用程序

Php 777之后“无法打开流:权限被拒绝”我的整个应用程序,php,linux,laravel,laravel-5,Php,Linux,Laravel,Laravel 5,为了解决这个问题,我长了几根白发 突然在我的Laravel项目中,我无法将任何文件直接上传到我的符号链接公共/存储,因为它抱怨权限问题 然后我对应用程序中的每一个文件进行了777'加密,我知道,它仍然在抱怨权限问题。我还运行过composer dump autoload,它似乎什么都没做,但我想我还是会尝试一下 有人知道我还能尝试什么吗?我可以验证一切都是777,所以我看不出为什么任何权限都会失败…SE Linux可能是一个罪魁祸首,因为在某些情况下策略会发生变化,例如,当模块出现故障时,它会出

为了解决这个问题,我长了几根白发

突然在我的Laravel项目中,我无法将任何文件直接上传到我的符号链接公共/存储,因为它抱怨权限问题

然后我对应用程序中的每一个文件进行了777'加密,我知道,它仍然在抱怨权限问题。我还运行过composer dump autoload,它似乎什么都没做,但我想我还是会尝试一下


有人知道我还能尝试什么吗?我可以验证一切都是777,所以我看不出为什么任何权限都会失败…

SE Linux可能是一个罪魁祸首,因为在某些情况下策略会发生变化,例如,当模块出现故障时,它会出问题。这将是setsebool-P httpd_read_user_content 1如果这会引发错误,手动删除损坏的模块是唯一有用的方法。

Gah,抱歉,伙计们,这有点麻烦

777'ing一切都不工作,因为上传的文件被设置为644,所以我的手册777只应用于已经存在的文件


作为将来的参考,如果任何人使用Laravel并且排队作业无法访问644文件,请在上载apache拥有上载文件后立即将该文件设置为664,但排队时尝试访问的是www数据或ec2用户

不清楚你在问什么。提示:递归chown和chmod不会跟随符号链接。。。如果我不得不猜测,我会假设父目录或符号链接目的地不能列出;其中chmod+x有帮助。一些可能有助于确定原因的东西:错误堆栈跟踪、导致错误的代码、Web服务器apache/nginx?、服务器配置followsymlinks enabled?、操作系统名称/版本、Laravel版本、PHP版本您可以共享用于保存和获取文件的代码吗?这没有回答我的问题,但是它看起来对合适的人真的很有帮助,所以我给它打勾:SE linux做了什么有用的事情吗?我只知道它会与事物发生冲突。这是一个修辞性的问题。@Chipster它通常提供适当的隔离,所有东西都有一个安全上下文。一旦定义了策略,它就会运行。到目前为止,我只发生过一次,由于redis卸载完成了一半,我破坏了模块。@MartinZeitler这是某种防病毒软件吗?@Chipster这暗示了在某个地方设置了错误的web服务器用户,因为apache和www数据是普通的等效用户,只是不同的Linux发行版使用了两个不同的用户名。只是检查了源代码,但在任何地方都找不到用户名。。。更改http.conf使服务器作为www数据而不是apache运行也可能会修复此问题。。。因为这将导致www数据拥有一个文件。一定有原因,为什么用户名不一致。。。很可能它来自某个composer依赖项,该依赖项是用另一个发行版构建的,因此是另一个用户名。你几乎肯定是对的@MartinZeitler-在我的情况下,我会说这是因为Laravel本身大部分时间都作为apache运行,但当它在队列外运行作业时,它使用的是启动队列或主管的任何用户。664而不是644对我来说很好,但是让服务器像www数据一样运行也可以。