我在实时服务器上使用WordPress ,该服务器仅通过SSH密钥使用SFTP 。
我想安装和升级插件,但是看来您需要输入FTP登录才能安装插件。 有没有一种方法可以通过手动上传文件而不是让WordPress处理整个过程来安装和升级插件?
#1楼
- 在
wp-config.php
添加define('FS_METHOD', 'direct');
- 使服务器可写目录
wp-content/
,wp-content/plugins/
。 - 安装插件(将插件目录复制到
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选项。
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
的。 但是我已经在其他地方看到了这种方法。
参考文献:
- 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
#6楼
是的,直接在WordPress中安装插件。
- 复制插件文件夹并粘贴到WordPress插件文件夹中。
- 转到管理员端(/ test / wp-admin),然后转到插件链接上并检查插件的名称。
- 激活插件,以便轻松安装插件。
其他选择
- 为插件代码创建zip文件。
- 转到管理端(/ 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楼
- 从改变
php_mod
到fastcgi
与cgi
及SuEXEC
启用,对我的作品
不要忘了如果不工作,尝试改变
以root身份将wp-content更改为775
chmod -R 775 ./wp-content
添加到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');
权限说明如下:
- http://codex.wordpress.org/Updating_WordPress#Automatic_Update
- http://codex.wordpress.org/Changing_File_Permissions
#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文件。
我唯一的问题是让它记住密钥(尝试了两种方法)。 不喜欢每次我需要删除插件时都必须查找并输入它的想法。 但是至少目前这是一个固定的解决方案。