【问题标题】:PHP "The upload destination folder does not appear to be writable"PHP“上传目标文件夹似乎不可写”
【发布时间】:2011-03-17 10:01:26
【问题描述】:

当我尝试在我的 localhost 版本的网站上上传文件时,它会给我以下消息: "上传目标文件夹似乎不可写"

上传功能在生产服务器上运行良好。

我检查了目标文件夹的权限大约百万次仍然收到错误还尝试更改 httpd 和目标文件夹用户/组,但没有运气。

“is_writable”PHP 函数返回 false....我错过了什么?

我正在使用 Fedora 13、Apache 2.2.15 和 PHP 5.3.2

感谢您的帮助

华尔

【问题讨论】:

  • 你能显示目标文件夹的完整路径吗?你能显示权限吗?您能否 100% 确定您拥有使用 posix_getuid() 的正确用户?安全模式是否激活?
  • apache 服务器以什么用户身份运行?听起来这个用户确实没有对相关目录的写入权限。
  • 您是否尝试将权限设置为 777?
  • Re: evil3 - 永远不要在生产中这样做。由于这个问题指定了 localhost,也许这是一个有效的故障排除步骤,但切勿在任何其他人能够以任何方式访问的系统上执行此操作。
  • 因为您在 Fedora 13 上并且可能有默认安装:您很可能在 Security-Enhanced Linux (SELinux) 下运行,它拒绝写入任意目录。您是否检查了 /var/log/audit/audit.log 是否有拒绝? (在任何情况下,请不要将权限设置为 777。让您的数据可全球写入从来都不是一个好主意。)

标签: php file directory file-upload writable


【解决方案1】:

如果你正在编写你的 linux exec 命令,那么你必须在你的设置中关闭 PHP_Safe_MOD。有时我们使用 exec() 命令来执行操作。试试看吧。希望它会起作用。

您可以做的其他事情是尝试更改父目录上的权限 Recursively 777。

/a/b/c

chmod -R 777 a

【讨论】:

  • 只是一个小观察/点 - 更改权限是一个很好的建议,但我不会在“父目录”上这样做。权限最好设置为最具限制性的同时仍允许系统运行 - 所以我会确保仅在上传文件夹/图像文件夹上递归更改权限。我可能只是误读了您的建议 - 只是为了清楚起见而添加。
  • chmod 777 从不是权限问题的“解决方案”。这更像是“我会敞开前门,以防有一天我忘记了钥匙”。在任何情况下都不要这样做。整个目录树的 chmod 777 甚至更糟。
  • 没错,建议改成777只是为了快速测试一下是否有效,然后权限问题,他可以使用适当的权限设置使其工作。
猜你喜欢
  • 1970-01-01
  • 2013-10-26
  • 2013-03-10
  • 2016-09-13
  • 2011-08-11
  • 2017-03-24
  • 2018-01-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多