Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.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
apache php文件\u放置\u内容权限被拒绝_Php_Apache_Folder Permissions - Fatal编程技术网

apache php文件\u放置\u内容权限被拒绝

apache php文件\u放置\u内容权限被拒绝,php,apache,folder-permissions,Php,Apache,Folder Permissions,由于权限被拒绝,php脚本无法创建文件 PHP脚本: <? echo exec('whoami'); file_put_contents('/var/www/html/sample.txt','Some random Text'); ?> 目录权限都是777我也遇到了同样的问题,并且我错放了一些配置。首先请记住,创建php文件的用户可以读取该文件,如果创建php文件的用户与您案例中的apache用户不同,那么它就是apache,在这种情况下,如果您尝试编写php文件,就会出现此异常

由于权限被拒绝,php脚本无法创建文件

PHP脚本:

<?
echo exec('whoami');
file_put_contents('/var/www/html/sample.txt','Some random Text');
?>

目录权限都是777

我也遇到了同样的问题,并且我错放了一些配置。首先请记住,创建php文件的用户可以读取该文件,如果创建php文件的用户与您案例中的apache用户不同,那么它就是
apache
,在这种情况下,如果您尝试编写php文件,就会出现此异常从不同的用户。因此,您所要做的只是,我建议您撤销
777
权限,因为我不喜欢您的文件在读写世界时公开,所以请将其返回到755,然后在服务器的命令行上执行下一步操作

cd /var/www
只更改HTML的用户,因为我们只需要它是可写的,所以不要触摸var和www,所以基本上只要您导航到www目录,您就要将HTML目录所有者更改为当前运行apache服务器的所有者,并且您已经获得了该信息,在您的例子中,它是apache,因此我们将进行下一步

chown apache:apache html

在此阶段,html文件所有者将是apache,因此您可以在其上进行写入。无论如何,同时我强烈建议您在html中创建单独的目录,比如
testDir
,然后在那里尝试,我不建议更改根文件夹权限,我和他们有过不愉快的经历。无论如何,我希望这会有帮助,因为我忍受了超过一个小时的痛苦,而且刚刚找到了正确的方法。这解决了我的问题,希望它也能解决你的问题

尝试使用相对路径代替
file\u put\u contents('sample.txt'…
和(旁注)确保短标记为“开”。或
file\u put\u contents('test/samds.txt'…
根据您的错误消息和从根目录运行的代码。此外,您的错误与上面的
文件内容
文件路径不匹配-错误表示您正试图将其放入
/var/www/html/test/samds.txt
,但您的代码表示不同。请向我们显示您用于获取该错误的代码。^Ig不要那个小毛病。我写了一个示例脚本。@Fred ii-不,我已经尝试了相对路径。我在我的服务器上测试了你的代码,它成功了。你是在本地计算机上运行这个程序,还是在托管站点上运行这个程序?@Pranjal,并尝试将文件夹权限更改为755chown:invalid user:'apache:apache'
chown apache:apache html