Wordpress sftp自动更新-找不到wp内容目录


Wordpress sftp automatic update - Could not find the wp-content directory

我正在尝试配置Wordpress上的sftp自动更新。它不起作用:我总是得到"wp内容找不到"。

我的配置如下:

  • 每个站点都有自己的用户
  • 该站点位于用户主目录下:/home/{user}/www
  • 用户被记录到其主目录:/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内容目录。

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

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

那么,有没有一种方法可以让wordpress自动更新与我的设置配合使用?

提前!!

我能够通过记录SFTP用户来使其工作。

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

    子系统sftp内部sftp
    仅匹配组sftp
    ChrootDirectory%h
    ForceCommand内部sftp
    AllowTcp转发无

不要忘记注释掉"Subsystem sftp"的任何其他实例
重新启动sshd
还要注意,这将只允许"SFTP only"组成员的任何用户使用SFTP,而不允许使用纯SSH外壳。如果您还想允许纯ssh会话,请尝试删除"ForceCommand"条目——虽然没有尝试,但应该可以。

  1. 将用户添加到"仅sftp"组,例如:

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

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

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

GL