我在我的live服务器上使用WordPress,它只使用SSH密钥的SFTP。

我想安装和升级插件,但似乎需要输入FTP登录来安装插件。有没有一种方法可以通过手动上传文件来安装和升级插件,而不是让WordPress来处理整个过程?


当前回答

我看到很多人建议将权限设置为777。2天前我也有同样的问题,我所做的就是,将此添加到wp-content

define('FS_METHOD', 'direct');

and

设置插件文件夹的权限为775

这解决了我询问FTP访问登录名/密码的问题。

在此之前,我必须手动添加插件,将.zip文件添加到插件文件夹,然后进入wp-admin/plugins,并必须安装它。

其他回答

将以下代码添加到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

只是想补充一点,你绝对不能将wp-content权限或任何文件夹的权限设置为777。

这就是我必须要做的:

1)我将wordpress文件夹的所有权(递归地)设置为apache用户,如下所示:

# chown -R apache wordpress/

2)我将wordpress文件夹的组所有权(递归)更改为apache组,如下所示:

# chgrp -R apache wordpress/

3)赋予目录所有者完全权限,如下所示:

# chmod u+wrx wordpress/*

这就成功了。顺便说一句,我的wp-content文件夹有755个权限。

TL;博士版:

# chown -R apache:apache wordpress
# chmod u+wrx wordpress/*

为了能够使用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

是的,你能做到。

你需要加上

define('METHOD','direct');

在wpconfig中。 但是这种方法并不可取,因为它存在安全隐患。

谢谢,

打开wp-config.php文件并添加以下行:

定义(“FS_METHOD”、“直接”);

这对我很有用…谢谢