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

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


当前回答

在wp-config.php添加定义('FS_METHOD', 'direct') 使服务器可写目录wp-content/, wp-content/plugins/。 安装插件(将插件目录复制到wp-content/plugins目录)。

工作版本3.2.1

其他回答

是的,你能做到。

你需要加上

define('METHOD','direct');

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

谢谢,

如果WordPress不能直接写入/wp-content,它只会在安装插件或WordPress更新时提示您输入FTP连接信息。否则,如果您的web服务器具有对必要文件的写访问权,它将自动负责更新和安装。这种方法不需要你有FTP/SFTP或SSH访问权限,但它需要你在你的web服务器上设置特定的文件权限。

它将按顺序尝试各种方法,如果Direct和SSH方法不可用,则退回到FTP。

https://github.com/WordPress/WordPress/blob/4.2.2/wp-admin/includes/file.php#L912

WordPress会尝试写一个临时文件到你的/wp-content目录。如果成功,它会将文件的所有权与它自己的uid进行比较,如果有匹配,它将允许你使用“直接”方法安装插件、主题或更新。

现在,如果出于某种原因,你不想依赖于自动检查使用哪个文件系统方法,你可以在你的wp-config.php文件中定义一个常量,'FS_METHOD',即'direct', 'ssh', 'ftpext'或'ftpsockets',它将使用该方法。请记住,如果您将此设置为“direct”,但您的web用户(web服务器运行的用户名)没有适当的写权限,您将收到一个错误。

总之,如果你不想(或你不能)改变wp-content的权限,这样你的web服务器就有写权限,那么把这个添加到你的wp-config.php文件中:

define('FS_METHOD', 'direct');

权限说明如下:

http://codex.wordpress.org/Updating_WordPress#Automatic_Update http://codex.wordpress.org/Changing_File_Permissions

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

您可以拥有fileZilla并使用FTP帐户来更新插件和主题。或者你可以登录到Cpanel并访问wordpress文件夹,然后你可以通过解压缩主题或插件来更新主题。

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

define('FS_METHOD', 'direct');

and

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

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

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