我最近遇到了一个PHP上传脚本的问题,它拒绝将上传的文件移动到一个永久目录。在对脚本(以前在另一台机器上运行)进行了多次修改和调试之后,我检查了/etc/php5/apache2/php.ini
中的PHP设置。我注意到里面的所有东西都不能阻止上传。然后我转向临时文件存储的地方(/tmp
),发现上传时创建了一个tmp文件。
由于权限要求,是否可以阻止脚本将文件移动到某个位置(不是Apache声明的默认安装)?
我检查了什么用户Apache正在使用posix_getpwuid()
,它返回:
Array (
[name] => www-data
[passwd] => x
[uid] => 33
[gid] => 33
[gecos] => www-data
[dir] => /var/www
[shell] => /usr/sbin/nologin
)
脚本所在站点的目录为/home/smillification/workspace/Website
,权限设置为me / (smillification)
。上传脚本和脚本将上传文件移动到的最终文件位置都位于上述目录下。
我是Ubuntu和它文件权限的新手,所以任何帮助都会非常感激。
修复整个www目录的文件权限:
chown -R www-data:www-data /var/www/
虽然我建议遵循这个伟大的答案关于更永久的权限修复