我的网络服务器以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
/ group 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
身份登录并启动该脚本"手动",它可以正常工作。
可能是什么问题(当然还有解决方案)?
答案 0 :(得分:0)
我找到了解决办法:父文件夹没有赋予其子女权利:
不起作用的配置
$ 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缺乏知识......