为什么运行在群晖 NAS 上的 WordPress 升级更新和插件都需要输入 FTP 用户名和密码?

故障描述

WordPress 没有写权限,导致无论是升级/更新 WordPress、安装/更新插件都要求输入 FTP 密码

WordPress 要求输入 FTP 的用户名密码

故障原因

因为某种神奇的原因,更新 WordPress 版本或安装插件时的用户身份是 nobody,而 WordPress 目录权限身份是 http,因此导致目录权限身份不符引发权限问题。

通常情况下运行 WordPress 的所有目录权限设置为 755 就够了,因为 WordPress 安装/更新插件需要 644(4+2)的权限,更新升级 WordPress 自身的话需要 7(4+2+1)权限。
所有 WordPress 的文件设置为 664 即可,例外的是:wp-config.php 应设为 600,以防其它用户读取。

解决方法

找到问题的症结后,就能对症下药了。既然更新文件时使用了奇怪的用户身份,那我们来强制 WordPress 使用 PHP 的读写身份就行了。

开启 Web station 的 zip

  1. 打开 Web Station——PHP 设置——编辑配置文件
  2. 拓展名里找到 zip 并打钩,开启 zip 支持;

修改 wp-config.php

  1. 在 WordPress 的根目录下找到wp-config.php文件;
  2. define这行代码最上面的新增这行代码:
define('FS_METHOD', 'direct');

这行代码告诉 WordPress 强制使用 PHP 的读写身份运行文件读写操作。就像下面这样,保存后上传到你的服务器文件里。

结束语

其实看得出来:群晖在引导用户从套件中心安装群晖打包的 WordPress,而不想让用户在 NAS 上安装 WordPress 官方版。
群晖甚至在自己打包的 WordPress 的配置文件 config.php 中添加了禁用 WordPress 官方更新的代码。这意味着如果你选择群晖版 WordPress 就算在后台看到“更新提示”也无法升级,只能等群晖的包,然后从套件中心来升级。

原文出处:解决群晖 Synlolgy 上 WordPress 安装更新主题插件需要 FTP 的问题 - 张林海博客
最后修改:2023 年 01 月 20 日
如果觉得我的文章对你有用,别忘了点赞或赞赏,让我知道路上有你陪伴。