我在我的live服务器上使用WordPress,它只使用SSH密钥的SFTP。
我想安装和升级插件,但似乎需要输入FTP登录来安装插件。有没有一种方法可以通过手动上传文件来安装和升级插件,而不是让WordPress来处理整个过程?
我在我的live服务器上使用WordPress,它只使用SSH密钥的SFTP。
我想安装和升级插件,但似乎需要输入FTP登录来安装插件。有没有一种方法可以通过手动上传文件来安装和升级插件,而不是让WordPress来处理整个过程?
当前回答
复活了一个旧线程,但是有一个很棒的新插件叫做SSH SFTP Updater Support,它添加了SFTP功能,而不需要编辑你的wp-config.php文件。另外,Wordpress的SFTP实现依赖于一些模糊的PHP模块,这些模块在服务器上通常不启用;这个插件打包了一个不同的PHP SFTP插件,所以你不需要在Apache端配置任何东西。
我遇到了大量的问题,SFTP支持工作-这个插件解决了所有的问题,只是梦幻般的。
其他回答
为了能够使用SSH2进行更新和主题上传,您必须生成SSH密钥并安装PHP SSH模块。然后WordPress会检测到你有SSH2可用,当你上传/升级时,你会看到一个不同的选项(SSH2)。
1)。确保你为debian安装了PHP模块,它是:
sudo apt-get install libssh2-php
2)。生成SSH密钥,可选添加密码短语:
ssh-keygen
cd ~/.ssh
cp id_rsa.pub authorized_keys
3)。更改权限,以便WordPress可以访问这些密钥:
cd ~
chmod 755 .ssh
chmod 644 .ssh/*
现在当你上传/升级/插件时,你会得到SSH2选项。
4)。为了更方便,你可以在wp-config.php中设置默认值,这将在WordPress上传窗口中预先填充SSH凭据。
define('FTP_PUBKEY','/home/<user>/.ssh/id_rsa.pub');
define('FTP_PRIKEY','/home/<user>/.ssh/id_rsa');
define('FTP_USER','<user>');
define('FTP_PASS','passphrase');
define('FTP_HOST','domain.com');
'passphrase'是可选的,如果你在ssh-kengen期间没有设置一个passphrase;然后不要在wp-config.php中添加它
这解决了我的问题。而且我根本不用嚼东西。但我在其他地方看到过这种方法。
引用:
http://wp.tutsplus.com/articles/tips-articles/quick-tip-upgrade-your-wordpress-site-via-ssh/ http://codex.wordpress.org/Editing_wp-config.php#Enabling_SSH_Upgrade_Access
将以下代码添加到wp-config中
define('FS_METHOD', 'direct');
FS_METHOD强制使用文件系统方法。只能是direct、ssh2、ftpext或ftpsockets。通常,只有在遇到更新问题时才应该更改此选项。如果你改了也没用,那就改回来/去掉。在大多数情况下,如果自动选择的方法不起作用,将其设置为'ftpsockets'将正常工作。
(主要偏好)“direct”迫使它从PHP内部使用直接文件I/O请求,这在配置不佳的主机上充满了安全问题,这是在适当的时候自动选择的。
(二级偏好)“ssh2”是强制使用SSH PHP扩展如果安装
(第三优先)“ftpext”是强制使用FTP PHP扩展进行FTP访问,最后
(4日偏好)“ftpsockets”使用PHP套接字类进行FTP访问
欲了解更多信息,请访问:http://codex.wordpress.org/Editing_wp-config.php#WordPress_Upgrade_Constants
请添加define('FS_METHOD','direct');在wp-config.php
通常你可以把你的插件上传到wp-content\plugins目录。如果你不能通过SFTP访问这个目录,恐怕你会被卡住。
在终端中执行以下代码
sudo chown -R www-data /var/www
详情请浏览 Wordpress在Ubuntu上安装插件不需要FTP访问