我可以在不提供 FTP 访问的情况下安装/更新 WordPress 插件吗?
我在我的实时服务器上使用 WordPress,它仅使用 SSH 密钥使用 SFTP。
我想安装和升级插件,但您似乎需要输入您的 FTP 登录名才能安装插件。 有没有办法通过手动上传文件而不是让 WordPress 处理整个过程来安装和升级插件?
解决方案
如果 WordPress 无法直接写入/wp-content
它只会在尝试安装插件或 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 进行比较,如果匹配,它将允许您使用“直接”方法安装插件、主题或更新。
现在,如果由于某种原因您不想依赖自动检查要使用的文件系统方法,您可以在wp-config.php
文件中定义一个常量'FS_METHOD'
,即'direct', 'ssh', 'ftpext' or 'ftpsockets'
,它将使用该方法。 请记住,如果您将其设置为“direct”,但您的网络用户(运行网络服务器的用户名)没有适当的写入权限,您将收到错误消息。
总之,如果您不想(或不能)更改 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
如前所述,所有烫发修复都不再起作用。 您需要相应地更改权限并将以下内容放入您的wp-config.php
:
define('FS_METHOD', 'direct');
只是想补充一点,您绝不能将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/*
- 在
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');
就是这样,在没有 ftp 的情况下享受您的 wordpress 更新!
替代方法:
有一些主机会阻止这种方法工作以简化您的 WordPress 更新。 幸运的是,还有另一种方法可以防止这种害虫提示您输入 FTP 用户名和密码。
同样,在 wp-config.php 文件中的 MYSQL 登录声明之后,添加以下内容:
define("FTP_HOST", "localhost");
define("FTP_USER", "yourftpusername");
define("FTP_PASS", "yourftppassword");
将php_mod
更改为启用cgi
和SuEXEC
fastcgi
( ISPConfig用户)。 为我工作。
如果不起作用,请尝试以root
或sudo
用户身份将wp-content
更改为775
:
chmod -R 775 ./wp-content
然后添加到wp-config.php
:
define('FS_METHOD', 'direct');
祝你好运
为了能够使用 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');
‘passphrase’ 是可选的,如果你没有在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-contentplugins
目录。 如果您无法通过 SFTP 访问此目录,恐怕您会被卡住。
您可以通过在命令提示符下键入以下命令来轻松获取它
sudo chown -R www-data:www-data your_folder_name
或将以下代码复制并粘贴到 wp-config.php 文件中。
define('FS_METHOD', 'direct');
其中“your_folder_name”是您的 WordPress 安装在此文件夹中的文件夹。
如果您使用的是Ubuntu ,一个对我有用的快速解决方案是将所有权授予Apache用户(默认为 www-data),如下所示:
cd your_wordpress_directory
sudo chown -R www-data wp-content
sudo chmod -R 755 wp-content
你可能还喜欢下面这些文章

//demo.imwpweb.com/wpnovo/多设备支持主题支持PC和移动端界面,独立设置,互不干扰。移动端首页(右)图:小说页面PC端和移动端的展示付费订阅主题支持付费订阅功能,支持付费单章订阅、整本小说订阅模式。

什么是内链内链,顾名思义就是在同一网站域名下的内容页面之间的互相链接(自己网站的内容链接到自己网站的内部页面,也称之为站内链接)。自动内链工作原理简单来说,我们设定一些词表以及词表对应的链接,比如词是wordpress插件,链接是http

这款插件的核心功能就是一点:找出文章中的违禁词、敏感词等措辞不当的词语,替换成你设置的更合适的词或者直接替换“*”号。请注意,需要同时下载站长工具箱和违禁词屏蔽插件,安装插件时也需要两个插件同时安装。

2、自动生成的图片并非真实在磁盘中的图片,而是动态生成的,如果保存到磁盘会占用大量空间,这个空间没必要浪费,因此修改主题代码,直接将缩略图的地址改为wpac自动生成的缩略图地址是一个非常好的方案。

wprec利用相似度算法计算每篇文章之间的相似度,找到与当前文章最相似的一些文章,展现在文章底部作为相关文章。我们知道,相关推荐插件推荐的原理是根据当前文章的特征(文章的高权重标签),从文章库中召回相关文章,再根据相关性评分,最后选出To