使用fopen在PHP中创建文件的权限被拒绝
我想动态创建一个文件,并向其中写入一些JSON。我有JSON,这很好。但是当我尝试创建文件时,出现了一些问题。似乎这可能是权限或文件所有者的问题,但我不确定如何修复它。这是我的密码:使用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
$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客户端来实现这一点