Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.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
使用fopen在PHP中创建文件的权限被拒绝_Php_File_File Permissions - Fatal编程技术网

使用fopen在PHP中创建文件的权限被拒绝

使用fopen在PHP中创建文件的权限被拒绝,php,file,file-permissions,Php,File,File Permissions,我想动态创建一个文件,并向其中写入一些JSON。我有JSON,这很好。但是当我尝试创建文件时,出现了一些问题。似乎这可能是权限或文件所有者的问题,但我不确定如何修复它。这是我的密码: $strFile = PUBLIC_PATH . '/javascript/members.json'; if (!file_exists($strFile)) { chmod(PUBLIC_PATH . '/javascript', 0755); // operation not permitted e

我想动态创建一个文件,并向其中写入一些JSON。我有JSON,这很好。但是当我尝试创建文件时,出现了一些问题。似乎这可能是权限或文件所有者的问题,但我不确定如何修复它。这是我的密码:

$strFile = PUBLIC_PATH . '/javascript/members.json';
if (!file_exists($strFile)) {
    chmod(PUBLIC_PATH . '/javascript', 0755);  // operation not permitted error
    fopen($strFile, 'w');
    chmod($strFile, 0755);
    chown($strFile, 'www');
}
file_put_contents($strFile, $arrMembers);

我觉得这里遗漏了一些非常明显的东西。

检查运行PHP的用户是否对文件路径的每个目录都有“X”权限。 它将需要它来访问该文件

如果文件为:/path/to/test-in.txt 您应该对以下内容具有X权限:

/path
/path/to

和/path/to/test-in.txt上的读取权限或通过CPanel/ftp提供对文件的写入权限

我认为我必须将所有者设置为www。当前所有者是我的计算机。如果webserver用户最初没有编辑文件/目录的权限,则无法使用chmod更改权限。您必须在PHP脚本之外执行此操作。chown必须首先运行,但只有所有者或su/root可以修改所有者和priv。我认为这就是问题所在,但是我如何使用PHP实现这一点呢?通过编写大量使用ftp或CPanel更改权限所需的代码,我尝试使用chmod'ing目录“javascript”,但我得到了不允许的操作。使用ftp客户端来实现这一点