我尝试使用file_get_contents从php代码中读取一个json文件,但是我收到“无法打开流:Permission denied”,但当我试图让selinux处于Permissive模式时,它起作用了。我的问题是如何在不打开selinux处于Permessive模式的情况下允许file_get_contents读取文件?
注意:我在redhat 7中使用httpd服务器
尝试:
$json = file_get_contents('/target/file/here/file.json');
//modify json file
file_put_contents('new_file.json', $Json_to_put);
预期:
1-文件_获取_内容读取我的文件. json 2-文件_放置_内容创建我的新文件. json
2条答案
按热度按时间zu0ti5jz1#
你可以试试
1.更改webroot的所有者
chown-R apache:apache/目标/文件/此处
1.更改基本权限
chmod-R g + w/目标/文件/此处
chmod g + s/目标/文件/此处
ruoxqz4g2#
1.权限必须是可访问的
您可以看到访问允许源“*",控制方法“GET”
此外-您可能希望解码json..
您是从服务器上的一个文件中执行此操作的,因此这可能不适用,但仅供将来参考-我也遇到过第三方API(JSON格式)编码时的问题,因此请注意GZ Encoding或其他类型的编码。
然后您应该能够编辑数据并将
file_put_content
数据返回到文件。创建文件时,请确保添加适当的权限。PHP File Create/Write