我可以在不提供FTP访问的情况下安装/更新WordPress插件吗?
我在使用SSH密钥的SFTP服务器上使用WordPress。
我想安装和升级插件,但看起来您需要输入您的FTP登录才能安装插件。 有没有办法通过手动上传文件来安装和升级插件,而不是让WordPress处理整个过程?
如果WordPress无法直接写入/wp-content
WordPress只会在尝试安装插件或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'
,它将使用该方法。 请记住,如果将此设置为“直接”,但您的Web用户(您的Web服务器运行所用的用户名)没有适当的写入权限,则会收到错误消息。
总之,如果您不想(或不能)更改wp-content的权限,以便您的Web服务器具有写入权限,请将其添加到您的wp-config.php文件中:
define('FS_METHOD', 'direct');
权限解释在这里:
如前所述,没有任何烫发修复工作了。 您需要相应地更改烫发,并将以下内容放入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/*
链接地址: http://www.djcxy.com/p/39179.html
上一篇: Can I install/update WordPress plugins without providing FTP access?