Php文件创建不起作用

时间:2015-01-17 14:11:33

标签: php authorization fopen

我的网络服务器以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身份登录并启动该脚本"手动",它可以正常工作。 可能是什么问题(当然还有解决方案)?

1 个答案:

答案 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缺乏知识......