apache 文件获取内容(/目标/文件/此处/文件. json):无法打开流:在homepage.php中权限被拒绝

csbfibhn  于 2022-12-30  发布在  Apache
关注(0)|答案(2)|浏览(151)

我尝试使用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

zu0ti5jz

zu0ti5jz1#

你可以试试
1.更改webroot的所有者
chown-R apache:apache/目标/文件/此处
1.更改基本权限
chmod-R g + w/目标/文件/此处
chmod g + s/目标/文件/此处

ruoxqz4g

ruoxqz4g2#

1.权限必须是可访问的

//Partial Headers from a 3rd party JSON based API I have access too
"headers":
  {"Access-Control-Allow-Headers":"Content-Type,
   Access-Control-Allow-Headers, 
   Access-Control-Allow-Origin, 
   Access-Control-Allow-Methods",
   "Access-Control-Allow-Origin":"*",
   "Access-Control-Allow-Methods":"GET",
   "Content-Type":"application/json"}

您可以看到访问允许源“*",控制方法“GET”
此外-您可能希望解码json..

$json = json_decode(file_get_content($url), false);
// False returns an Object and True returns an Array.

您是从服务器上的一个文件中执行此操作的,因此这可能不适用,但仅供将来参考-我也遇到过第三方API(JSON格式)编码时的问题,因此请注意GZ Encoding或其他类型的编码。
然后您应该能够编辑数据并将file_put_content数据返回到文件。
创建文件时,请确保添加适当的权限。PHP File Create/Write

相关问题