换服务器后上传图片直接 500,debug.log 里是 Unable to create directory wp-content/uploads/2026/11. Is its parent directory writable by the server? 同目录下手动 mkdir 也失败。乍看像缓存或者权限的锅,追下去往往不是。

ps -o user= -p $(pgrep -f 'php-fpm.*pool' | head -1)
chown -R www-data:www-data wp-content/uploads
find wp-content/uploads -type d -exec chmod 755 {} \;

追下去是这么回事:wp-content 属组是 www-data,权限 750,PHP-FPM 运行用户不在这个组里,能读不能写。uploads 本身看着是 755,父目录没有写入权限一样建不了子目录。

「uploads 目录权限 500」相关的验证我通常做两遍,改完一次、隔天再看一次,确认不是临时生效。一次只改一处,改完立刻验证,几个改动叠在一起,出问题就说不清是谁导致的。

先做最小复现,能稳定跑出来的问题,排查成本会低一个数量级。别只看报错的最后一行,往上看几行,真正的起因通常在上面。

同类问题如果隔一段时间又出现,多半是某个定时任务或重启流程把改动冲掉了。

具体做法是,确认 PHP-FPM 的实际运行用户 别只看 nginx 配置;把 wp-content 和 uploads 的属组改成该用户 目录 755 文件 644;切到该用户 touch 一个文件验证再回后台重试。

验收就看一点,后台再传一张图不再 500,uploads 下按月份自动建出目录,文件属主是 PHP 运行用户。

作者 9823189