我正在尝试在Wordpress上配置sftp自动更新。它不起作用:我总是得到" wp-content无法找到"。
我的配置如下:
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自动更新与我的设置一起使用?
提前thx !!答案 0 :(得分:0)
我能够通过chroot SFTP用户使其工作。
我在/ etc / ssh / sshd_config的最后有这个:
子系统sftp internal-sftp
Match Group sftp-only
ChrootDirectory%h
ForceCommand internal-sftp
AllowTcpForwarding no
...不要忘记注释掉'Subsystem sftp'的任何其他实例
重启sshd。
另请注意,对于任何“sftp-only”组成员的用户,这只允许SFTP - 没有普通的SSH shell。如果你想允许普通的ssh会话,尝试删除'ForceCommand'条目 - 没有尝试但是应该工作。
addgroup sftp-only
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 - 确保现在只在用户的home / chroot内部看到。
对我来说,在统一了SFTP和PHP的路径之后,SFTP插件现在按预期工作了。当然,SFTP {user}必须具有WP根的写权限。
GL