【问题标题】:PHP and PermissionsPHP 和权限
【发布时间】:2010-06-08 00:38:18
【问题描述】:

我最近将我的网站移到了一个新主机上,现在遇到了一些损坏的代码..

我有一个正在返回的上传脚本:

move_uploaded_file() 未能打开 流:*..中的权限被拒绝。

我已将上传目录设置为 777,效果很好,但我的脚本需要拥有顶级权限..

(由于脚本本身设置目录权限,进行大量复制等)

在 apache 中有没有办法可以将 PHP 脚本设置为我服务器上所有文件夹的所有者?

谢谢

还有 在 phpInfo() 中查找时

apache2handler

User/Group  nobody(99)/99 

这有关系吗?

【问题讨论】:

  • 上传的文件$file['tmp_name']和targetdir是否存在? is_writable($targetdir) 是什么?

标签: php apache permissions


【解决方案1】:

我不会走那条路,只需授予它对已定义 upload_tmp_dir 的权限,或将 upload_tmp_dir 定义为您有权访问的目录。如果是您遇到问题的那个目录。如果目标是问题,并且你已经 777 解决了它,那么事情就很可疑了。

【讨论】:

  • 我已经 777'ed 并且上传正常。但是我的脚本然后使用 Chmod 和 Rename 也被拒绝。我需要脚本拥有所有者权限。
【解决方案2】:

您对新主机有 ssh 访问权限吗?我问的原因是,最好将用户名/组用作nobody,因为大多数其他服务也会使用它。我会把它改成apache

然后您可以更新 httpd.conf,添加这两行(之后重新加载配置):

User apache
Group apache

然后,运行chown apache:apache -R dir_name 让 apache 拥有它。

【讨论】:

    【解决方案3】:

    嗯, 当您尝试设置“0777”之类的权限时,您必须以相同的权限运行。

    我的意思是。 例如,您的脚本要求将文件夹/文件权限更改为 0777,但该文件夹或文件已经具有权限,即“0755”,因此您无权进行该更改。因为用户只有5 权限。

    要么,您需要登录 FTP 并将文件夹权限更改为 0777,然后您就可以完全控制它,或者您必须坚持使用 0755 或类似的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-22
      • 2011-04-15
      • 2015-04-21
      • 1970-01-01
      • 2011-11-21
      • 1970-01-01
      • 2020-05-02
      • 2012-12-17
      相关资源
      最近更新 更多