【发布时间】:2013-01-11 15:18:18
【问题描述】:
我的服务器装有 FreeBSD 8.0、Apache 2.2.23 和 PHP 5.4.10。那是我的 VirtualHost 配置:
<VirtualHost *>
ServerName site.com
ServerAlias www.site.com
DocumentRoot /usr/home/site/pub/htdocs/
php_admin_value open_basedir /usr/home/site/
php_admin_value session.save_path 0;0660;/usr/home/site/pub/tmp/
php_admin_value upload_tmp_dir /usr/home/site/pub/tmp/
</VirtualHost>
/usr/home/site/pub/tmp/ 由 site:www 拥有,具有 4770 权限。正确创建会话文件(660 和站点:www)。但上传的临时文件创建的权限为 600。因此,由于这个临时文件由 site:www 拥有,而 Apache 从 www:www 运行,move_uploaded_file() 无法移动文件。
如何解决?
我认为我需要修补 PHP 来强制设置此 tmp 文件的权限。但是哪里?而PHP中的哪个内部函数可以做到呢?
【问题讨论】:
-
此功能无济于事,因为站点拥有的文件:www 600 和 Apache 从 www:www 运行。
标签: php permissions apache2 freebsd patch