Php 无法创建文件
Php file creation doesn't work
我的网络服务器是 运行 和 daemon
。我知道安全等等,但请暂时忽略它。我的问题是我已经完成了:
> chmod 777 /web/htdocs/olivier/wogwog/transit/02.done
> ls -al /web/htdocs/olivier/wogwog/transit
drwxrwxrwx 2 hqfdev hqfdev 36K Jan 17 14:41 02.done
所以该目录属于用户hqfdev
/组hqfdev
。
这是我的 Php 代码:
$tmp_name='/web/htdocs/olivier/wogwog/transit/02.done/caca.txt';
if (($handle=@fopen($tmp_name, 'w'))!==false) {
fclose($handle);
error_log('OOOOOOOOOK');
} else {
error_log('error');
}
我一直在我的日志中看到这个:
[snip] [:error] [snip] current running = daemon, referer: http://www.blabla/
[snip] [:error] [snip] PHP Warning: fopen(...): failed to open stream: Permission denied in /blabla.php on line 5, referer: http://www.blabla/
[snip] [:error] [snip] error, referer: http://www.blabla/
因此尝试创建文件的进程是 daemon
,它无法写入属于 hqfdev
的 777 文件夹。 (*.*)
。我完全被卡住了,因为我已经这样做了十亿次并且成功了。
供您参考,如果我 ssh
我的服务器,以 hqfdev
身份登录并启动该脚本 "by hand",它就可以工作。
可能是什么问题(当然还有解决方案)?
我找到了解决方案:父文件夹没有将权限授予其子文件夹:
配置无效
$ ls -al /web/htdocs/olivier/wogwog
drwx------ hqfdev hqfdev transit
$ ls -al /web/htdocs/olivier/wogwog/transit
drwxrwxrwx hqfdev hqfdev 02.done
现在有效的配置:
$ ls -al /web/htdocs/olivier/wogwog
drwxr-xr-x hqfdev hqfdev transit
$ ls -al /web/htdocs/olivier/wogwog/transit
drwxrwxrwx hqfdev hqfdev 02.done
...纯Unix知识匮乏...
我的网络服务器是 运行 和 daemon
。我知道安全等等,但请暂时忽略它。我的问题是我已经完成了:
> chmod 777 /web/htdocs/olivier/wogwog/transit/02.done
> ls -al /web/htdocs/olivier/wogwog/transit
drwxrwxrwx 2 hqfdev hqfdev 36K Jan 17 14:41 02.done
所以该目录属于用户hqfdev
/组hqfdev
。
这是我的 Php 代码:
$tmp_name='/web/htdocs/olivier/wogwog/transit/02.done/caca.txt';
if (($handle=@fopen($tmp_name, 'w'))!==false) {
fclose($handle);
error_log('OOOOOOOOOK');
} else {
error_log('error');
}
我一直在我的日志中看到这个:
[snip] [:error] [snip] current running = daemon, referer: http://www.blabla/
[snip] [:error] [snip] PHP Warning: fopen(...): failed to open stream: Permission denied in /blabla.php on line 5, referer: http://www.blabla/
[snip] [:error] [snip] error, referer: http://www.blabla/
因此尝试创建文件的进程是 daemon
,它无法写入属于 hqfdev
的 777 文件夹。 (*.*)
。我完全被卡住了,因为我已经这样做了十亿次并且成功了。
供您参考,如果我 ssh
我的服务器,以 hqfdev
身份登录并启动该脚本 "by hand",它就可以工作。
可能是什么问题(当然还有解决方案)?
我找到了解决方案:父文件夹没有将权限授予其子文件夹:
配置无效
$ ls -al /web/htdocs/olivier/wogwog
drwx------ hqfdev hqfdev transit
$ ls -al /web/htdocs/olivier/wogwog/transit
drwxrwxrwx hqfdev hqfdev 02.done
现在有效的配置:
$ ls -al /web/htdocs/olivier/wogwog
drwxr-xr-x hqfdev hqfdev transit
$ ls -al /web/htdocs/olivier/wogwog/transit
drwxrwxrwx hqfdev hqfdev 02.done
...纯Unix知识匮乏...