【发布时间】:2013-10-19 22:49:24
【问题描述】:
更新:在我的 php 中它是 .com 而不是 .org,这么小的东西太痛苦了
这让我发疯了,我已经在这个网站、谷歌以及在寻找解决方案之间的所有地方都试过了。目前在这里:
CentOS 6,阿帕奇 2
iptables 已关闭 用户组:ftpdir 组中的用户:root、apache、fwf(我的 ftp 用户,ftp 工作正常) 目录权限,全部启用用于测试目的
rxwrxwrxw on /srv/www/floridawinefest.com/public_html/
rxwrxwrxw on /etc/tmp/
php.ini 禁用了安全模式,启用了文件上传,临时目录设置为 /etc/tmp,最大文件大小 5mb 正在使用 200k 文件进行测试
使用 apache:ftpdir 在 public_html 目录上运行 chown
使用 apache:ftpdir 在 etc/tmp 目录上运行 chown
在 /public_html 中的所有文件和目录上递归运行 chmod
尝试上传文件时仍然出现以下错误
Warning: move_uploaded_file(/srv/www/floridawinefest.com/public_html/topBG.jpg): failed to open stream: Permission denied in /srv/www/floridawinefest.org/public_html/uploader.php on line 11 Warning: move_uploaded_file(): Unable to move '/etc/tmp/php9TTyoR' to '/srv/www/floridawinefest.com/public_html/topBG.jpg' in /srv/www/floridawinefest.org/public_html/uploader.php on line 11
我的代码:
chmod($_FILES["file"]["tmp_name"], 0777);
$success = move_uploaded_file($_FILES["file"]["tmp_name"], "/srv/www/floridawinefest.com/public_html/" . $filename_full);
echo "Succes: " . $success . "<br />";
chmod($filename_full, 0777);
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br>";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
echo "Stored in: " . $_FILES["file"]["tmp_name"];
}
【问题讨论】:
-
看起来很奇怪的问题,无论如何 - 在哪个用户 apache 下运行?
-
我在您的错误消息中看到了 .org 和 .com 的混合。可能是走错路了?
-
奇怪!可能没有多大意义,但您是否考虑过/尝试过生成基于时间戳的 tmp_name?另外,/etc/tmp 目录下的文件是否可见?
-
哦……我的……上帝……我花了这么多时间在这上面,它是 .com/.org。非常感谢你。文件上传在我的 wordpress 安装中仍然无法正常工作,但可以在我的测试脚本中工作,等等到下一部分!
标签: php apache upload permissions centos