我可以在不提供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');

权限解释在这里:

  • 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/*
    
    链接地址: http://www.djcxy.com/p/39179.html

    上一篇: Can I install/update WordPress plugins without providing FTP access?

    下一篇: Thread Safety and Spring Scopes in Web Flow