wordpress - LEMP + wordpress 文件权限能够编辑、升级和使用 sftp 客户端

标签 wordpress file nginx permissions sftp

我正在尝试管理运行nginx的debian网络服务器上的文件权限,以便wordpress可以编辑、上传和升级而无需使用ftp。我还希望能够使用 sftp 使用我的用户帐户登录。

我知道这个问题之前已经被问过,请参阅 herehere ,但按照这些答案中的步骤进行操作并不令人满意。目前的设置如下:

  • wordpress 文件夹位于 /var/www/html/

  • 我创建了一个新用户(“用户”)和组(“组”)。服务器用户是 “www-数据”。

  • wordpress 文件夹中的所有文件均归 user:group 所有。

  • “user”和“www-data”都被设置为属于“group”。

  • 我更改了文件和文件夹权限,如下所示:

    find /var/www/html/ -type d -exec chmod 2775 {} +
    
    find /var/www/html/ -type f -exec chmod 664 {} +
    
  • 我将默认 umask 设置为 0002。

我本以为这应该可行,但目前我可以从 WordPress 中编辑和上传文件,但不能更新 WordPress、功能或主题。

  • 它也不适用于将“group”设置为“user”和/或“www-data”的默认组(通过编辑 /etc/passwd)。

或者,我将 /var/www/html/ 中的所有文件都归 user:www-data 所有,但也没有成功。

我似乎让 wordpress 在没有 ftp 的情况下更新的唯一方法是让 wordpress 文件夹及其所有文件归“www-data”所有。不幸的是,这样做的结果是我无法使用 sftp 客户端上传文件(因为目标现在是不属于“用户”的文件夹)。

怎么会这样呢?据我了解,这些步骤应该为 WordPress 提供适当的权限,但仍然有问题。

我们将非常感谢您的帮助。

最佳答案

在 Debian 服务器上,我按照以下步骤操作。正如我读到的那样,这可能不是最安全的解决方案 here ,但它有效(wordpress 可以编辑、上传和升级 - 我可以使用 sftp 上传)。

  • 创建一个新用户“user”

  • 创建一个新组“group”(您也可以选择使用 www-data 作为组)

  • 将用户和 www-data 添加到组

    usermod -G group user
    usermod -G group www-data
    
  • 检查 /etc/group 中的组数字 ID 例如组:x:1002

  • 更改 /etc/passwd 中 www-data 和用户的默认组 例如用户:x:1001:1002:...

  • /etc/php5/fpm/pool.d/www.conf (就我而言)更改 group=www-data;group=www-data 。现在 nginx 将使用我们刚刚设置为“group”的默认 www-data 组。重新加载服务(php5-fpm)。

  • 递归地将 WordPress 文件夹的所有者更改为 user:group

    chown -R user:group /var/www/html
    
  • 更改 WordPress 文件夹中的权限(第二个是将新文件分配给父文件夹的组)

    find /var/www/html/ -type d -exec chmod 2775 {} +
    find /var/www/html/ -type f -exec chmod 664 {} +
    
  • 将 umask 更改为 UMASK 0002/etc/login.defs

  • 在 WordPress 中,通过添加 define('FS_METHOD','direct'); 强制直接上传(因此没有 ftp)到 wp-config.php。 就我而言,这是至关重要的一步。

  • 为了让一切正常工作,我需要重新启动。

关于wordpress - LEMP + wordpress 文件权限能够编辑、升级和使用 sftp 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25879884/

相关文章:

javascript - 当 DOM 准备好时,jQuery 代码不执行

php - 在运行/执行后获取 php 文件的内容

python - 如何使用python重命名目录中的文件

nginx - Docker for Mac nginx 示例无法运行

php - Woocommerce 回显每种产品的总零售额

wordpress - 有没有办法通过谷歌脚本在 WordPress 中添加帖子?

jquery - Wordpress 自定义导航,下拉标题不可点击

file - 如何在 Nautilus/Caja linux 文件管理器中获取视频文件的分辨率(宽度和高度)?

laravel - Laradock 404 未找到带有存储符号链接(symbolic link)的文件

php - 在html中为表数据制作前进/后退按钮