我使用的是 cpanel,它在 Red Hat Linux 上运行,默认情况下以名为 的用户身份运行 Apache。Ubuntunobody
做了类似的事情,但调用用户www-data
。
默认情况下,当你为用户创建新帐户时,所有文件都属于新用户,因此所有者可能是joeblogs
。
问题是,所有 php 都是由 执行的nobody
,并且对于默认配置权限设置,您要么是文件的所有者,要么是允许更新文件的组中的人。
我尝试过将 wordpress 文件归属为nobody
,这样可以更容易地自动更新过程,但代价是允许joeblogs
轻松地编辑他的文件。
什么是最简单、最易于维护的方式,可以允许用户joeblogs
和 apache 用户nobody
更新帐户目录中的所有文件,让他们可以轻松地保持其 wordpress 安装为最新,同时仍然尽可能多地控制他们的空间?
谢谢
答案1
Wordpress 就是为此而设计的。当用户进入更新屏幕时,它会要求输入 ftp 登录凭据,这样它就可以以 joeblogs 的身份通过 ftp 登录并以此方式管理文件。
答案2
您可以使用 acls 来实现这一点。不过,最简单的方法可能是从 mod_php 切换到 su_php,这样 wordpress 就由 joeblogs 而不是 nobody 来执行。
答案3
我博客的托管提供商目前使用通过 suExec 运行的 PHP,因此它以我的用户 ID 运行,而不是 Apache 运行时所用的用户。这效果很好,让我可以毫无问题地管理 Wordpress。过去,我手动维护升级,因为我将 wp-content 目录移开,这样我就可以在升级期间覆盖 wordpress/ 目录的其余部分,同时仍保留我的插件和主题。我只需在 wordpress/ 之外创建指向 wp-content/ 目录的符号链接即可。使用 suExec 运行 PHP,我不再需要维护这种分离,并且能够快速顺利地升级,没有任何问题。