尽管拥有777权限,但php无法打开或写入文件

时间:2011-03-24 10:18:00

标签: php apache permissions file-permissions

我的php脚本无法写入文件despide 777权限。 我想写的文件是mash.xml

-rwxrwxrwx. 1 root root   459 May 16  2010 config.xml
-rwxrwxrwx. 1 root root   323 May 16  2010 handler.xml
-rwxrwxrwx. 1 root root 13908 Mar 15 12:18 mash.xml
-rwxrwxrwx. 1 root root   494 May 17  2010 media_audio.xml
-rwxrwxrwx. 1 root root 13967 Feb 15 07:40 media_effect.xml
-rwxrwxrwx. 1 root root   312 May 16  2010 source.xml

我检查了以下问题: - 与文件上传者相同的用户,var_dump(get_current_user());显示“root”

这是apache日志:

[error] [client 155.132.8.52] PHP Warning:  
fopen(/var/www/html/moviemasher_3-1-04/example/save/media/xml/mash.xml): 
failed to open stream: 
Permission denied in /var/www/html/moviemasher_3-1-04/example/save/media/php/save.php 
on line 14

感谢您的帮助

2 个答案:

答案 0 :(得分:2)

如果启用了SELinux:

semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html/moviemasher_3-1-04/example/save/media/xml/mash.xml"

随意使用正则表达式作为文件名。

答案 1 :(得分:0)

你应该能够写这样的mash.xml,但我建议你也尝试chown来改变所有权,例如

chown www-data:www-data mash.xml

(www-data是大多数Linux系统上apache用户的用户组和用户ID)。