我有问题。 我用这个盒子' rasmus / php7dev',它有效,没问题,但问题是......
系统默认使用nginx。 当我创建一个名为' apix'的目录时。通过vagrantfile。 它会创建' apix目录'在/ usr / share / nginx / html
sudo touch /usr/share/nginx/html/index.php
在终端上运行代码。
<?php
file_put_contents('foo.php',[]);
it does not work..
Warning: file_put_contents(foo.php): failed to open stream: Permission denied in /var/www/default/apix/index.php on line 3
解决它 sudo chmod -R 777 / usr / share / nginx / html / apix
但结果是假!!!!!
我该怎么办?
答案 0 :(得分:2)
如果apix目录的权限没问题,请检查您是否尝试在apix目录中写入。例如,把整个路径 - file_put_contents('/ usr / share / nginx / html / apix / foo.php',[]); 也许你只是从错误的目录写。
答案 1 :(得分:0)
如果其他人遇到这类错误,您必须确保/usr/share/nginx/html
目录下的每个目录都应该使用777编辑chmod
。
您可以先cd
到/usr/share/nginx/html
cd /usr/share/nginx/html
然后你必须运行:
chmod 777 -R *
完成。
为了完整起见,如果你从/var/log/nginx/error.log
得到以下错误(这是我的真正问题并且谷歌把我带到这里错了)那么我上面提到的命令可以帮助你。
2017/07/08 16:57:27 [错误] 24573#0:* 192在stderr中发送的FastCGI:&#34; PHP消息:PHP警告:file_put_contents(文件):无法打开流:权限被拒绝第106行&#34; /usr/share/nginx/html/agentwebsite/index.php从上游读取响应头时,客户端:xxxx,server:example.com,请求:&#34; POST /agentwebsite/index.php HTTP / 1.1&#34;,上游:&#34; fastcgi:// unix: /var/run/php5-fpm.sock:" ;,主持人:&#34; example.com&#34;
也许我错了。但无论如何你可以遵循更好的方法:
您应该创建一个包含nginx
和php
用户的用户组,并将该组设置为目录的所有者,然后对这些文件执行chmod g+srwx
。