所以,我有这个错误:
Warning: fopen(/path/to/test-in.txt) [function.fopen]: failed to open stream: Permission denied
ls -l
在 is所在的目录中执行test-in.txt
会产生以下输出:
-rw-r--r-- 1 $USER $USER 1921 Sep 6 20:09 test-in.txt
-rw-r--r-- 1 $USER $USER 0 Sep 6 20:08 test-out.txt
为了克服这个问题,我决定执行以下操作:
chgrp -R www-data /path/to/php/webroot
然后做了:
chmod g+rw /path/to/php/webroot
然而,当我运行我的 php5 脚本打开文件时,我仍然得到这个错误。为什么会这样?我已经通过 CGI 使用 LAMP 和 cherokee 尝试过这个,所以不可能是这样。
有某种解决方案吗?
编辑
我还要补充一点,我现在只是通过 localhost 进行开发。
更新 - PHPfopen()
行
$fullpath = $this->fileRoot . $this->fileInData['fileName'];
$file_ptr = fopen( $fullpath, 'r+' );
我还应该提到,如果可能的话,我想坚持使用 Cherokee。为 Apache/Cherokee 设置文件权限有什么意义?