624

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

我想安装和升级插件,但您似乎需要输入您的 FTP 登录名才能安装插件。有没有办法通过手动上传文件而不是让 WordPress 处理整个过程来安装和升级插件?

4

33 回答 33

819

如果无法/wp-content直接写入,WordPress 只会在尝试安装插件或 WordPress 更新时提示您输入 FTP 连接信息。否则,如果您的 Web 服务器对必要文件具有写入权限,它将自动处理更新和安装。此方法不需要您拥有 FTP/SFTP 或 SSH 访问权限,但它确实需要您在网络服务器上设置特定的文件权限。

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

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

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

现在,如果由于某种原因您不想依赖自动检查要使用的文件系统方法,您可以'FS_METHOD'wp-config.php文件中定义一个常量,或者'direct', 'ssh', 'ftpext' or 'ftpsockets'它会使用该方法。请记住,如果您将此设置为“直接”,但您的网络用户(运行网络服务器的用户名)没有正确的写入权限,您将收到错误消息。

总之,如果您不想(或不能)更改 wp-content 的权限以使您的 Web 服务器具有写入权限,则将其添加到您的 wp-config.php 文件中:

define('FS_METHOD', 'direct');

此处解释的权限:

于 2011-04-13T13:25:53.263 回答
275

如前所述,任何烫发修复都不再起作用。您需要相应地更改烫发并将以下内容放入您的wp-config.php

define('FS_METHOD', 'direct');
于 2012-02-22T19:36:14.160 回答
115

只是想补充一点,您绝不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;DR 版本:

# chown -R apache:apache wordpress
# chmod u+wrx wordpress/*
于 2013-05-17T22:34:56.773 回答
71
  1. wp-config.php添加define('FS_METHOD', 'direct');
  2. 使服务器可写目录wp-content/wp-content/plugins/.
  3. 安装插件(将插件目录复制到wp-content/plugins目录中)。

在版本 3.2.1 上工作

于 2012-04-16T05:05:24.507 回答
52

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

define('FS_METHOD', 'direct');

这对我有用......谢谢

于 2016-02-27T11:23:46.977 回答
34

只需快速更改wp-config.php

define('FS_METHOD','direct');

就是这样,在没有 ftp的情况下享受您的 wordpress 更新!

替代方法:

有一些主机会阻止这种方法来简化您的 WordPress 更新。幸运的是,还有另一种方法可以防止这种害虫提示您输入 FTP 用户名和密码。

同样,在 wp-config.php 文件中的 MYSQL 登录声明之后,添加以下内容:

define("FTP_HOST", "localhost");
define("FTP_USER", "yourftpusername");
define("FTP_PASS", "yourftppassword");
于 2014-12-26T12:41:58.247 回答
24

更改php_mod启用fastcgi并启用(cgiISPConfig用户)。为我工作。SuEXEC

如果不起作用,请尝试更改wp-content775asrootsudouser:

chmod -R 775 ./wp-content

然后添加到wp-config.php

define('FS_METHOD', 'direct');

祝你好运

于 2017-09-11T17:18:08.007 回答
22

为了能够使用 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 选项。 WP SSH 连接

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');

ssh-kengen如果您在;期间没有设置密码,“密码”是可选的。然后不要添加它wp-config.php

这解决了我的问题。而且我根本不需要这样做chown。但是我在其他地方看到过这种方法。

参考:

于 2013-06-16T16:53:12.263 回答
21

通常您只需将插件上传到wp-content\plugins目录即可。如果您无法通过 SFTP 访问此目录,恐怕您可能会被卡住。

于 2009-03-12T20:59:02.847 回答
19

您可以通过在命令提示符上键入以下命令来轻松获取它

sudo chown -R www-data:www-data your_folder_name

或将以下代码复制并粘贴到您的 wp-config.php 文件中。

define('FS_METHOD', 'direct');

其中“your_folder_name”是您的 WordPress 安装在此文件夹中的文件夹。

于 2014-06-21T07:32:15.100 回答
16

如果您使用的是Ubuntu,那么一个对我有用的快速解决方案是将所有权授予Apache用户(默认为 www-data),如下所示:

cd your_wordpress_directory
sudo chown -R www-data wp-content
sudo chmod -R 755 wp-content
于 2012-02-12T20:32:24.690 回答
16

在终端执行以下代码

sudo chown -R www-data /var/www

有关更多详细信息,请访问 Ubuntu 上的 Wordpress 安装无需 FTP 访问的插件

于 2015-07-24T09:51:23.947 回答
15

将以下代码添加到 wp-config

define('FS_METHOD', 'direct');

FS_METHOD强制文件系统方法。它只能是直接的、ssh2、ftpext 或 ftpsockets。通常,只有在遇到更新问题时才应更改此设置。如果您更改它并且它没有帮助,请将其更改回来/删除它。在大多数情况下,如果自动选择的方法不起作用,将其设置为 'ftpsockets' 将起作用。

(主要偏好)“直接”强制它使用来自 PHP 内部的直接文件 I/O 请求,这会在配置不当的主机上引发安全问题,这会在适当时自动选择。

(次要偏好)“ssh2”是强制使用 SSH PHP 扩展(如果已安装)

(3rd Preference) "ftpext"是强制使用 FTP PHP 扩展进行 FTP 访问,最后

(第 4 种偏好)“ftpsockets”利用 PHP Sockets 类进行 FTP 访问

欲了解更多信息,请访问:http ://codex.wordpress.org/Editing_wp-config.php#WordPress_Upgrade_Constants

于 2014-05-22T05:13:53.667 回答
12

WordPress 2.7 允许您直接上传 zip 文件(插件页面底部有一个链接)——无需 FTP 访问。这是 2.7 中的一个新功能,它仅适用于插件(还不是主题)。

于 2009-03-12T21:00:05.607 回答
9

复活一个旧线程,但是有一个很棒的新插件,称为SSH SFTP 更新程序支持,它添加了 SFTP 功能,而无需编辑您的wp-config.php文件。此外,Wordpress 的 SFTP 实现依赖于一些有些晦涩难懂的 PHP 模块,这些模块通常不会在服务器上启用;这个插件打包了一个不同的 PHP SFTP 插件,所以你不必在 Apache 端配置任何东西。

我在让 SFTP 支持工作时遇到了很多问题——这个插件解决了所有这些问题,真是太棒了。

于 2012-02-08T16:47:22.153 回答
8

stereointeractive 的答案涵盖了所有选项。只是想提一下使用 FTP 的另一种方式。我猜你不允许FTP访问的原因是为了安全。解决这些安全问题的一种方法是运行仅在 127.0.0.1 上侦听的 FTP 服务器

这允许您从 WordPress 内部使用 FTP,并且您将能够安装插件而不会将其暴露给世界其他地方。这也可以应用于其他流行的 Web 应用程序,例如 Joomla!和 Drupal。这就是我们对BitNami 设备云服务器所做的事情,并且运行良好。

于 2011-07-27T14:43:39.937 回答
8

是的,直接在WordPress中安装插件。

  1. 复制插件文件夹并粘贴到 WordPress 插件文件夹中。
  2. 转到管理端(/test/wp-admin),然后转到插件链接并检查插件的名称。
  3. 激活插件,以便轻松安装插件。

其他选项

  1. 为插件代码创建 zip 文件。
  2. 转到管理端(/test/wp-admin),然后转到插件链接,然后单击添加新然后浏览插件 zip 文件夹并安装插件,然后出现选项激活插件,所以请激活插件和激活插件。
于 2013-11-26T10:02:27.203 回答
8

我还推荐SSH SFTP Updater Support 插件。刚刚也解决了我所有的问题……尤其是在通过管理员删除插件方面。只需以通常的方式安装它,下次 WordPress 提示您输入 FTP 详细信息时,将有额外的字段供您复制/粘贴您的私人 SSH 密钥或上传您的 PEM 文件。

我唯一的问题是让它记住密钥(尝试了两种方法)。不喜欢每次我需要删除插件时都必须查找并输入它的想法。但至少现在这是一个可靠的解决方案。

于 2012-02-27T19:34:47.977 回答
7

尝试这个

1)在wp-config.php添加define('FS_METHOD', 'direct');

2)将wp-content目录设置777为可写。

3)现在安装插件。

于 2012-09-28T07:04:26.177 回答
7

我看到很多人建议将权限设置为 777。我在 2 天前遇到了同样的问题,我所做的只是将其添加到 wp-content

define('FS_METHOD', 'direct');

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

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

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

于 2017-07-23T02:19:30.587 回答
6

可以使用 SFTP 或 SSH 自动更新 WordPress 中的插件,但您需要有 ssh2 pecl 扩展。您可以使用以下教程了解如何操作

于 2009-09-14T11:03:28.287 回答
6

我们使用 SFTP 和 SSH(在我们的开发和实时服务器上),我已经尝试(虽然不太难)使用 WordPress 上传功能。我同意 Toby,将您的插件上传到wp-content/plugins目录,然后从那里激活它们。

于 2009-03-14T18:42:13.823 回答
5

试试这个检查是否为 wp-content 文件夹提供了正确的权限。

编辑 wp-config.php 添加以下行

define('FS_METHOD', 'direct');

chmod 将“wp-content”目录更改为 www-data 以获得完全访问权限。

现在尝试安装插件。

于 2017-12-18T07:49:06.313 回答
4

是的,你可以做到。

您需要添加

define('METHOD','direct');

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

谢谢,

于 2019-05-21T05:30:52.550 回答
3

方法一: 你可以这样设置: 1.在wp-config.php中你需要写这几行。

define('FS_METHOD', 'direct'); 

注意:把它放在define('DB_CHARSET', 'utf8mb4')之后。

  1. 设置 wp-content 权限或递归权限 775 完全权限,您可以通过 filezilla 授予它。写点击目录>权限>检查读写和执行,还检查递归到子目录

方法二:

或者你也可以设置这个

define("FTP_HOST", "localhost");
define("FTP_USER", "yourftpusername");
define("FTP_PASS", "yourftppassword");
于 2019-12-27T07:01:51.190 回答
3

请添加define('FS_METHOD','direct');wp-config.php

于 2019-06-21T10:57:45.437 回答
2

设置 ftp 甚至 SFTP 连接或 chmod 777 对于本地环境以外的任何东西都是不好的方法。甚至打开 SFTP 方法也会引入更多不需要的安全风险。

需要的是这些目录的所有者对 /wp-content/uploads 和 /wp-content/plugins/ 的可写权限。(linux ls -la 会显示所有权)。

运行的默认 apache 用户是 www-data。

chmod 777 允许机器上的任何用户编辑这些文件,而不仅仅是 apache/php 线程用户。

如果您还没有使用 SFTP,它将从外部来源引入另一个可能的故障点。而您只需要运行 apache/php 进程的本地用户访问即可完成目标。

没有看到任何人提出这些观点,所以我想我会提供这些信息来帮助我们在线解决我们持续存在的 WP 安全问题。

于 2018-08-12T21:07:09.910 回答
2

这是一个简单的方法。

执行以下命令。

这将为 Apache 启用 mod_rewrite 模块

$sudo a2enmod rewrite

此命令会将文件夹的所有者更改为 www-data

$sudo chown -R www-data [Wordpress Folder Location]

执行上述命令后,您可以在没有 FTP 的情况下安装任何主题。

于 2019-04-01T19:54:21.033 回答
1

You can add following in wp-config.php

define('METHOD','direct');

Here is a youtube video that explaining how to do it. https://youtu.be/pq4QRp4427c

于 2020-12-13T07:13:52.950 回答
1

当您没有在 /wp-content 目录上写入权限时,WordPress 不允许您通过 WordPress 管理仪表板上传任何插件的唯一原因。请记住,您的 wordpress 目录 /wp-content 需要 0755 权限级别。有多种方法可以更改文件夹的权限级别。

使用 cPanel 更改文件权限:

转到文件管理器,打开您的 wordpress 网站应该位于的公共 HTML 文件夹,或者如果您的网站位于其他文件夹中,则打开站点根目录。在您的 WordPress 根目录中导航到 wp-content 文件夹;在 wp-content 文件夹行的末尾,最后一个框带有该文件夹的文件权限。确保将文件夹权限级别编辑为 0755,您就完成了。

使用 SSH 终端更改文件权限:

在您的终端中找到 WordPress 站点的根目录,在我的例子中是 /var/www/html,因此要进入 WordPress 根目录,请输入以下命令:

cd /var/www/html 

现在您位于所需文件夹 /wp-content 所在的 WordPress 根目录中。因此,要更改文件权限,请键入以下命令:

sudo chmod wp-content 755 

这会将您的 /wp-content 目录文件权限更改为 0755。

现在您不会收到通过 FTP 上传 wordpress 插件的错误消息。

于 2019-09-23T19:34:59.400 回答
0

两步

  1. 在 wp-config 文件中添加以下代码

    define('FS_METHOD', 'direct');
    
  2. 我们需要对该文件夹授予完全权限,例如服务器是否通过 SSH 连接,然后将以下代码粘贴到终端中,并确保您位于网站文件夹中,然后运行以下代码

    sudo chmod -R 775 wp-content/plugins 
    

    或授予网站文件夹的完全权限

    sudo chown -R www-data:www-data website_folder
    
于 2019-12-04T09:02:58.870 回答
0

使用 SSH 安装插件的最佳方式是 WPCLI。

请注意,使用 WP CLI 命令必须使用 SSH 访问。在使用它之前,请检查 WP CLI 是否安装在您的托管服务器或机器上。

如何检查:wp --version[它将显示已安装的 wp cli 版本]

如果没有安装,如何安装: 安装 WP-CLI 之前,请确保环境满足最低要求:

类 UNIX 环境(OS X、Linux、FreeBSD、Cygwin);Windows 环境中的有限支持。PHP 5.4 或更高版本 WordPress 3.7 或更高版本。比最新 WordPress 版本更早的版本可能会降低功能

如果以上几点都满意,请按照以下步骤操作:参考网址:WPCLI

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
[ download the wpcli phar ]

php wp-cli.phar --info [ check whether the phar file is working ]

chmod +x wp-cli.phar [ change permission ]
sudo mv wp-cli.phar /usr/local/bin/wp [ move to global folder ]
wp --info [ to check the installation ]

现在 WP CLI 已准备好安装。

现在,您可以使用以下命令安装 WordPress.org 中可用的任何插件:

wp install plugin plugin-slug
wp delete plugin plugin-slug
wp deactivate plugin plugin-slug

注意:wp cli 只能安装那些在 wordpress.org 中可用的插件

于 2018-12-28T04:47:41.933 回答
-1

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

于 2018-09-04T06:55:46.360 回答