我使用的WordPress只使用我活的服务器上SFTP使用SSH密钥.
我想安装和升级插件,但似乎您需要输入FTP登录才能安装插件.有没有办法通过手动上传文件而不是让WordPress处理整个过程来安装和升级插件?
WordPress只会在尝试安装插件或WordPress更新时提示您输入FTP连接信息,如果它无法/wp-content
直接写入.否则,如果您的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文件的所有权,如果有匹配它可以让你使用安装插件,主题,或更新的"直接"的方法.
现在,如果由于某种原因,你不想依靠自动检查要使用哪个文件系统的方法,你可以定义一个常数,'FS_METHOD'
在你的wp-config.php
文件,要么是'direct', 'ssh', 'ftpext' or 'ftpsockets'
,它会使用该方法.请记住,如果将其设置为"直接",但您的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
如前所述,perm修复程序都不再起作用.您需要相应地更改perms并将以下内容放入wp-config.php
:
define('FS_METHOD', 'direct');
只是想补充一点,你绝不wp-content
能将任何文件夹的权限或权限设置为777
.
这是我必须要做的:
1)我将wordpress文件夹的所有权(递归地)设置为apache用户,如下所示:
# chown -R apache wordpress/
如果是Ubuntu,Mint或Debian # chgrp -R apache wordpress/
2)我将wordpress文件夹的组所有权(递归地)更改为apache组,如下所示:
# chmod u+wrx wordpress/*
跳过Ubuntu,Mint或Debian的这一步
3)授予所有者对目录的完全权限,如下所示:
wp-content
这就完成了工作.我的755
文件夹有wp-content
权限,顺便说一句.
TL; DR版本:
# chown -R apache:apache wordpress # chmod u+wrx wordpress/*
在wp-config.php
加define('FS_METHOD', 'direct');
使服务器可写目录wp-content/
,wp-content/plugins/
.
安装插件(将插件目录复制到wp-content/plugins
目录中).
适用于版本3.2.1
打开wp-config.php
文件并添加以下行:
define('FS_METHOD', 'direct');
这对我有用......谢谢
只需快速更改wp-config.php即可
define('FS_METHOD','direct');
就是这样,享受你的wordpress更新没有ftp!
替代方法:
有些主机会阻止此方法简化您的WordPress更新.幸运的是,还有另一种方法可以防止这种有害生物提示您输入FTP用户名和密码.
同样,在wp-config.php文件中的MYSQL登录声明之后,添加以下内容:
define("FTP_HOST", "localhost"); define("FTP_USER", "yourftpusername"); define("FTP_PASS", "yourftppassword");
为了能够使用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//.ssh/id_rsa.pub'); define('FTP_PRIKEY','/home/ /.ssh/id_rsa'); define('FTP_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
通常,您只需将插件上传到wp-content\plugins
目录即可.如果您无法通过SFTP访问此目录,我担心您可能会被卡住.
您可以通过在命令promt上键入以下命令来轻松获得它
sudo chown -R www-data:www-data your_folder_name
或者将以下代码复制并粘贴到wp-config.php文件中.
define('FS_METHOD', 'direct');
其中"your_folder_name"是此文件夹中安装WordPress的文件夹.
在终端中执行以下代码
sudo chown -R www-data /var/www
有关更多详细信息,请访问 Ubuntu上的Wordpress,无需FTP即可安装插件
如果您使用的是Ubuntu,那么对我有用的快速解决方案是为Apache用户提供所有权(默认为www-data),如下所示:
cd your_wordpress_directory sudo chown -R www-data wp-content sudo chmod -R 755 wp-content
将以下代码添加到wp-config
define('FS_METHOD', 'direct');
FS_METHOD强制文件系统方法.它应该只是直接,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
WordPress 2.7允许您直接上传zip文件(插件页面底部有一个链接) - 无需FTP访问.这是2.7中的一个新功能,它仅适用于插件(不是主题).
从改变php_mod
到fastcgi
与cgi
和SuEXEC
启用,对我的作品
不要忘记如果不工作尝试改变
以root身份将wp-content更改为775
chmod -R 775 ./wp-content
添加到wp-config.php
define('FS_METHOD','direct');
我希望它有效
恢复旧线程,但有一个很棒的新插件称为SSH SFTP更新程序支持,它增加了SFTP功能而无需编辑wp-config.php
文件.此外,Wordpress的SFTP实现依赖于一些有些模糊的PHP模块,这些模块通常不在服务器上启用; 这个插件包装了一个不同的PHP SFTP插件,所以你不必在Apache端配置任何东西.
我遇到了很多让SFTP支持工作的问题 - 这个插件解决了所有这些问题并且非常棒.
试试这个
1)在wp-config.php中添加define('FS_METHOD','direct');
2)将"wp-content"目录设置为777以进行可写.
3)现在安装插件.
stereointeractive的答案涵盖了所有选项.只想提一下使用FTP的另一种方法.我猜你不允许FTP访问的原因是为了安全.解决这些安全问题的一种方法是运行仅在127.0.0.1上监听的FTP服务器
这允许您从WordPress内部使用FTP,您将能够安装插件,而不会将其暴露给世界其他地方.这也可以应用于其他流行的Web应用程序,如Joomla!和Drupal.这就是我们对BitNami设备和云服务器所做的工作,并且运行良好.
我还推荐使用SSH SFTP Updater Support插件.刚解决了我所有的问题......特别是关于通过管理员删除插件的问题.只需以通常的方式安装它,下次当您收到WordPress的FTP详细信息提示时,您将有额外的字段供您复制/粘贴您的私人SSH密钥或上传您的PEM文件.
我唯一的问题是让它记住密钥(尝试了两种方法).不喜欢每次我需要删除插件时必须找到并输入它的想法.但至少它现在是一个可靠的解决方案.
是的,直接在WordPress中安装插件.
复制插件文件夹并粘贴到WordPress插件文件夹中.
转到管理员端(/ test/wp-admin)然后转到插件链接并检查插件的名称.
激活插件,以便轻松安装插件.
其他选择
为插件代码创建zip文件.
转到管理员端(/ test/wp-admin)然后转到插件链接然后点击添加新的然后浏览插件zip文件夹并安装插件然后出来选项激活插件所以这样做激活插件和激活插件.
我们使用带有SSH的SFTP(在我们的开发服务器和实时服务器上),我尝试过(虽然不太难)使用WordPress上传功能.我同意Toby,将你的插件上传到wp-content/plugins
目录,然后从那里激活它们.
可以使用SFTP或SSH自动更新WordPress中的插件,但您需要具有ssh2 pecl扩展名.您可以使用以下教程了解如何执行此操作
我看到很多人都建议将权限设置为777.我遇到的问题就像2天前一样,我所做的就是把它添加到wp-content
define('FS_METHOD', 'direct');
和
为插件文件夹设置775权限
这解决了我询问FTP访问登录/密码的问题.
在此之前,我必须通过将.zip文件添加到插件文件夹手动添加插件,然后转到wp-admin/plugins
并且必须安装它.
尝试执行此操作检查是否对wp-content文件夹授予了正确的权限。
编辑wp-config.php添加以下行
define('FS_METHOD', 'direct');
将“ wp-content”目录更改为www-data以进行完全访问。
现在尝试安装插件。