1

我有一个 PHP 共享服务器,运行 Apache 网络服务器的用户帐户是nobody,我的 ftp 和 cpanel 的用户不同,可以说jokertec

现在,当我的网络服务器创建任何文件夹时,我在使用 cpanel 重命名/删除/修改该文件夹时遇到问题,而当我的 cpanel 创建任何文件夹时,网络服务器在执行相同操作时遇到问题。这是由于我认为这两个文件夹的所有者不同。

我想问的是,这是某种服务器配置错误吗,运行 apache 的用户和 cpanel 用户名应该相同吗?或者我在这里遗漏了什么?因为我认为我们无法更改运行 php 以动态创建文件夹的用户。

4

2 回答 2

1

这是一个常见问题,有一些解决方案。我们采用的方法是将需要访问文件的非 apache 用户的主要组(在我们的例子中实际上只有 1 个用户)与 Apache 相同的组 - 在我们的例子中是 www-data。

这意味着 Apache 和用户创建的文件都是使用 www-data 组创建的,并且都可以访问它们。

创建文件的权限由 Linux 上的 umask 控制。如果您当前的 umask 不允许组写入新创建的文件,您可以更改它 ala http://www.cyberciti.biz/tips/understanding-linux-unix-umask-value-usage.html

安全性始终是一个问题,但如果您的用户只能访问他们自己的 chrooted FTP 帐户(我相信这是 cpanel 设置的默认设置),您不必担心。如果他们有 SSH 访问权限,您可能会担心所有用户都可以访问其他用户的 Web 文件。考虑到相同的行为通常可以通过在共享主机环境中通过 Apache 运行的一些代码来实现,这是一个相当零的问题。

于 2013-10-16T07:09:31.437 回答
0

这是不使用 suExec 等的共享服务器上的常见问题。我所做的是我使用 ftp 连接到 localhost 并至少创建目录,如果不是文件的话。我也许可以创建一个单独的 ftp 用户,该用户只能访问您需要的目录。必须存储密码,当然。

于 2013-10-16T07:08:58.920 回答