为什么WordPress仍然不支持SFTP?

时间:2014-08-14 作者:TheBlackBenzKid

多年来,WordPress 2、WordPress 3甚至WordPress 4(预计不久将发布)都不支持SFTP作为上传主题、下载升级和配置插件的选项?

许多其他平台(如MovableType和ExpressionEngine以及Umbraco)也是企业驱动的,因为WordPress已经证明自己是一种企业产品,但为什么它仍然不支持SFTP?

当做

1 个回复
最合适的回答,由SO网友:Otto 整理而成

WordPressdoes 支持通过内置更新程序系统使用SSH(又名SFTP)建立连接。大约6年前,它在2.7版中获得了这种支持。参考号:https://core.trac.wordpress.org/ticket/7690

如果您没有在正常的“凭据”屏幕中看到它,那么这是因为您的PHP安装缺少必要的支持。WordPress不能说“ssh”,但如果该扩展可用,它可以使用PHP“ssh2”扩展来实现。

在WordPress中使用SSH有两个先决条件。

首先,PHP安装必须加载或以其他方式编译ssh2扩展。如果没有,您可以通过pecl获取。在某些情况下,如果主机不支持PHP,可能需要重新编译PHP或使用自定义PHP。大多数人看不到,这就是为什么默认情况下你看不到它。

其次stream_get_contents 功能必须可用。通常是这样,但在某些主机上,可能不存在这种情况。首先检查。内置代码也会检查这两个选项,因此如果它们不可用,那么它将无法通过检查,并且您无法获得ssh选项。

如果这两种情况都正确,则正常连接屏幕应自动为您显示一些新字段。这包括一个“SSH2”选项,以及用于向公钥和私钥对输入路径的字段。

与FTP方法非常相似,如果愿意,您可以每次都输入此信息,但只需在wp配置文件中设置一些常量就容易多了。

常量如下所示:

define(\'FTP_PUBKEY\',\'/home/user/.ssh/public-key-file\');
define(\'FTP_PRIKEY\',\'/home/user/.ssh/private-key-file\');
define(\'FTP_USER\',\'user\');
define(\'FTP_PASS\',\'passphrase\');
define(\'FTP_HOST\',\'domain.com\');
这样做的方法是生成一个新的ssh密钥对,专门供WordPress使用。公钥和私钥对应该存储在服务器的某个位置,以便WordPress能够读取它们。私钥可以通过WordPress需要知道的密码短语进行加密。需要将公钥添加到您帐户的“authorized\\u keys”文件中。

所有这些就绪后,WordPress将读取私钥,并使用该密钥以指定用户名连接到主机名。然后,除了通过SSH连接之外,它的行为与使用普通FTP的行为基本相同。

结束

相关推荐

如何通过ftp上传媒体文件,然后用它创建附件帖子?

我需要上传一个非常大的视频。我无法通过内置上传器上传,因为我的upload\\u max\\u filesize设置为仅2M,我无法覆盖它(我已将上传大小设置为50M,帖子大小设置为100M in。htaccess和php\\u info()确实反映了我的更改)当我尝试使用基于浏览器的上载工具时,我收到以下消息:请求的资源/wp管理员/媒体新建。php不允许在POST请求中使用请求数据,或者请求中提供的数据量超过了容量限制。如何通过FTP手动上传文件并将其显示在媒体库中?