我可以在不提供FTP访问的情况下安装/更新WordPress插件吗?

我在实时服务器上使用WordPress ,该服务器仅通过SSH密钥使用SFTP

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


#1楼

  1. wp-config.php添加define('FS_METHOD', 'direct');
  2. 使服务器可写目录wp-content/wp-content/plugins/
  3. 安装插件(将插件目录复制到wp-content/plugins目录中)。

处理版本3.2.1


#2楼

尝试这个

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

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

3)现在安装插件。


#3楼

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


#4楼

只是想补充一点,您绝不能将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/*

#5楼

为了使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的。 但是我已经在其他地方看到了这种方法。

参考文献:


#6楼

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

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

其他选择

  1. 为插件代码创建zip文件。
  2. 转到管理端(/ test / wp-admin),然后转到插件链接上,然后单击“添加新内容”,然后浏览插件zip文件夹并安装插件,然后选择激活插件选项,因此请激活插件并激活插件。

#7楼

将以下代码添加到wp-config

define('FS_METHOD', 'direct');

FS_METHOD强制使用文件系统方法。 它只能是direct,ssh2,ftpext或ftpsockets。 通常,只有在遇到更新问题时才应更改此设置。 如果您更改了它但无济于事,请将其更改回/删除。 在大多数情况下,如果自动选择的方法无效,则将其设置为“ ftpsockets”即可。

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

(第二优先级)“ ssh2”用于强制使用SSH PHP扩展(如果已安装)

(第三个首选项)“ ftpext”是强制将FTP PHP扩展名用于FTP访问,最后

(第四个优先级)“ ftpsockets”利用PHP套接字类进行FTP访问

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


#8楼

您可以通过在命令promt上键入以下命令来轻松获得它

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

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

define('FS_METHOD', 'direct');

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


#9楼

只需快速更改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");

#10楼

在终端执行以下代码

sudo chown -R www-data /var/www

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


#11楼

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

define('FS_METHOD', 'direct');

这对我有用...谢谢


#12楼

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

define('FS_METHOD', 'direct');

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

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

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


#13楼

  1. 从改变php_modfastcgicgiSuEXEC启用,对我的作品

不要忘了如果不工作,尝试改变

  1. 以root身份将wp-content更改为775

    chmod -R 775 ./wp-content

  2. 添加到wp-config.php

    define('FS_METHOD','direct');

我希望它能起作用


#14楼

尝试执行此操作检查是否对wp-content文件夹授予了正确的权限。

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

define('FS_METHOD', 'direct');

将“ wp-content”目录更改为www-data以进行完全访问。

现在尝试安装插件。


#15楼

设置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安全问题。


#16楼

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


#17楼

使用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版本的功能可能已降级

如果满足上述要求,请执行以下步骤:参考URL: 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中可用的那些插件


#18楼

这是一个简单的方法。

执行以下命令。

这将为Apache启用mod_rewrite模块

$sudo a2enmod rewrite

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

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

执行完上述命令后,您可以安装任何不带FTP的主题。


#19楼

是的,您可以做到。

您需要添加

define('METHOD','direct');

在您的wpconfig中。 但是,此方法由于具有安全缺陷而将不受欢迎。

谢谢,


#20楼

如果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' or 'ftpsockets' ,它将使用该方法。 请记住,如果将其设置为“ direct”,但是您的Web用户(运行Web服务器时使用的用户名)没有适当的写入权限,则会收到错误消息。

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

define('FS_METHOD', 'direct');

权限说明如下:


#21楼

请添加define('FS_METHOD','direct'); 在wo-config.php中


#22楼

当您没有权限在/ 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 

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

sudo chmod wp-content 755 

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

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


#23楼

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


#24楼

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


#25楼

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


#26楼

立体互动的答案涵盖了所有选项。 只是想提一下使用FTP的另一种方法。 我猜测您不允许FTP访问的原因是出于安全性考虑。 解决这些安全问题的一种方法是运行FTP服务器,使其仅侦听127.0.0.1

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


#27楼

恢复了旧线程,但是有一个了不起的新插件叫做SSH SFTP Updater Support ,它增加了SFTP功能,而无需编辑wp-config.php文件。 另外,Wordpress的SFTP实现依赖于一些晦涩难懂的PHP模块,这些模块通常未在服务器上启用。 该插件打包了一个不同的PHP SFTP插件,因此您无需在Apache端进行任何配置。

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


#28楼

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

cd your_wordpress_directory
sudo chown -R www-data wp-content
sudo chmod -R 755 wp-content

#29楼

如前所述,烫发修复程序无法正常工作。 您需要相应地更改权限,并将以下内容放入wp-config.php

define('FS_METHOD', 'direct');

#30楼

我还建议使用SSH SFTP Updater支持插件 。 刚刚也解决了我所有的问题...尤其是在通过管理员删除插件方面。 只需以通常的方式安装它,下次WordPress提示您输入FTP详细信息时,将有其他字段可用于复制/粘贴您的私密SSH密钥或上载PEM文件。

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值