【问题标题】:Wordpress sftp automatic update - Could not find the wp-content directoryWordpress sftp 自动更新 - 找不到 wp-content 目录
【发布时间】:2015-03-19 21:47:21
【问题描述】:

我正在尝试在 Wordpress 上配置 sftp 自动更新。它不起作用:我总是得到“找不到 wp-content”。

我的配置如下:

  • 每个网站都有自己的用户
  • 该站点位于用户主目录下:/home/{user}/www
  • 用户被 chroot 到其主目录:/home/{user}

sftp 对我的用户来说工作正常(使用命令行或 filezilla 等软件)。

在 wordpress 配置中,我得到了以下参数:

define('FS_METHOD', 'ssh2');
define('FTP_HOST', '127.0.0.1:22');
define('FTP_USER', 'test');
define('FTP_PASSWD', '');
define('FTP_PUBKEY','/home/test/wp-rsa.pub');
define('FTP_PRIKEY','/home/test/wp-rsa');

不幸的是,这不起作用。在更新过程中,wordpress 找不到 wp-content 目录。

问题是 ABSPATH 等于 /home/{user}/www 但通过 sftp 它应该只是 /www (由于 chrooted)。 我尝试使用 FTP_BASE 配置变量,但在查看 Wordpress 代码后,看起来在 sftp 连接的情况下,它不关心 FTP_BASE 的值:(

我在网上阅读了很多关于 sftp 设置的文章,但似乎没有一篇使用 chrooted 机制。

那么有没有办法让 wordpress 自动更新适用于我的设置?

提前谢谢!!

【问题讨论】:

    标签: php wordpress chroot ssh2-sftp


    【解决方案1】:

    我还可以通过 chroot SFTP 用户来使其工作。

    1. 我在 /etc/ssh/sshd_config 的最后有这个:

      子系统 sftp internal-sftp
      仅匹配组 sftp
      Chroot 目录 %h
      ForceCommand 内部 sftp
      AllowTcpForwarding 否

    ...不要忘记注释掉“子系统 sftp”的任何其他实例。
    重启sshd。
    另请注意,这将只允许属于“sftp-only”组成员的任何用户使用 SFTP - 没有普通的 SSH shell。如果您也想允许普通的 ssh 会话,请尝试删除“ForceCommand”条目 - 尚未尝试但应该可以。

    1. 将用户添加到 'sftp-only' 组,例如:

      仅添加组 sftp
      usermod -G sftp-only -a {用户}

    3.在 /etc/passwd 中将用户的主目录设置为与 PHP 的 chroot 文件夹相同,在您的情况下,我认为它们都是 /home/{user},不需要进行任何更改,但是在在我的情况下,我将 PHP chroot 设置为 /home/{user}/php,我必须将其更改为在 /etc/password 中匹配 {user} 的条目。
    4. 确保该主页路径的任何组件都归 root 所有,以便 SFTP chroot 功能允许登录 - 在这种情况下,/home 和 /home/{user} 都必须归 root 所有。
    5. 尝试使用 FileZilla 进行 SFTP - 确保您现在只能看到用户的 home/chroot 内部。

    对我来说,在统一了 SFTP 和 PHP 所看到的路径后,SFTP 插件现在可以按预期工作了。当然,SFTP {user} 必须对 WP root 具有写入权限。

    总账

    【讨论】:

      猜你喜欢
      • 2014-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-22
      • 1970-01-01
      • 2013-05-07
      • 2014-03-14
      • 1970-01-01
      相关资源
      最近更新 更多