代码之家  ›  专栏  ›  技术社区  ›  DonutReply

如何允许php创建与创建它们的文件具有相同所有权的文件?

  •  6
  • DonutReply  · 技术社区  · 15 年前

    PHP使用apache:apache所有权这似乎导致了其他php脚本访问该文件的问题。

    我在其他地方读到过,打开安全模式可能会影响这一点,但我已经关闭了它,并重新复制了文件,我仍然得到同样的问题。

    谢谢

    5 回复  |  直到 15 年前
        1
  •  2
  •   Wrikken    15 年前

    如果所有权很重要,并且多个用户/项目在同一台服务器上,那么您可能需要查看Apache中的SuExec:PHP文件将由设置中指定的用户运行,因此文件的默认所有权将自动得到处理。它节省了大量的chown/chmod'ing,并且用户运行的进程更容易受到限制。

    否则,我通常使用所有者和apache创建一个组,并将默认umask设置为007。

        2
  •  0
  •   Thariama    15 年前

    如果您使用的是Windows操作系统,则可以将Apache作为服务启动,并允许Apache在启动时使用您自己帐户的权限。

        3
  •  0
  •   A. M.    15 年前
        4
  •  0
  •   Chuck Burgess    15 年前

    为什么要费那么多程序费来换主人? apache.apache 反正是个很不安全的主人。为什么不干脆 chmod 0777 向所有所有者提供读、写和执行的文件。这将消除这个问题。

    如果您仍然有问题,那么您可能需要检查open\u basedir是否打开。如果是这样,则不是文件所有权或权限,而是位置。这基本上意味着您需要将文件放在apache/php已经包含在其路径中的位置。

        5
  •  0
  •   Orbling    15 年前

    上面提到chown(),请注意,通常chown()只能由root用户使用,并且您的Web服务器运行帐户不太可能是root用户,这是一个非常糟糕的主意。

    可以将sudo设置为允许特定区域中的其他用户使用chown,并且只允许特定用户使用。只需在/etc/sudoers中创建一个合适的条目,通常使用visudo程序即可。如果你自己没有根访问权限,那么你的主机提供商将不得不为你这样做,如果他们愿意的话。

    更多信息: http://www.sudo.ws/sudo/sudo.html

    推荐文章