WordPress 更新失败提示无法创建目录怎么回事?

文章导读
WordPress 更新提示“无法创建目录”通常是因为文件权限配置不当、磁盘空间不足或 PHP 进程用户无权写入。最直接的解决办法是检查 wp-content 目录权限并修正所有者,同时排除磁盘满载情况。
📋 目录
  1. 核心原因分析
  2. 场景一:拥有 SSH 权限
  3. 场景二:无 SSH 权限(面板或 FTP)
  4. 查看错误日志定位问题
  5. 配置文件调整(谨慎使用)
  6. 验证与安全加固
  7. 参考来源
A A

WordPress 更新提示“无法创建目录”通常是因为文件权限配置不当、磁盘空间不足或 PHP 进程用户无权写入。最直接的解决办法是检查 wp-content 目录权限并修正所有者,同时排除磁盘满载情况。

先说结论:多数情况是 Web 服务器用户没有写入权限,或者磁盘已满,优先排查权限和空间。

  • 先确认磁盘空间是否充足
  • 根据服务器环境(SSH/面板/FTP)修正 wp-content 目录的所有者和权限
  • 必要时开启调试日志定位具体错误
  • 验证后台更新功能是否恢复

核心原因分析

WordPress 在更新时需要向服务器写入临时文件,默认路径通常在 wp-content/upgrade。如果运行 PHP 的进程用户(如 www-data、nginx 或面板用户)对该目录没有写入权限,就会报错。另外,如果服务器磁盘空间已满,也无法创建新目录。

还有一种情况是服务器限制了 PHP 的直接文件写入,强制要求通过 FTP 更新,但配置未正确设置。

场景一:拥有 SSH 权限

如果你能通过 SSH 连接服务器,可以尝试以下命令快速检查和处理。注意区分目录和文件权限,符合最小权限原则。

WordPress 更新失败提示无法创建目录怎么回事?
# 1. 检查磁盘空间
df -h

# 2. 修正所有者(用户组根据实际情况,如 www-data, nginx, apache)
chown -R www-data:www-data /path/to/wordpress

# 3. 修正权限(目录 755,文件 644)
find /path/to/wordpress -type d -exec chmod 755 {} \; && find /path/to/wordpress -type f -exec chmod 644 {} \;

注意:请将 /path/to/wordpress 替换为实际网站路径。www-data 是常见用户,实际可能是 nginx、apache 或特定面板用户,可通过 ps aux | grep php 查看。

场景二:无 SSH 权限(面板或 FTP)

对于虚拟主机或不便使用 SSH 的用户,可通过文件管理器或 FTP 客户端修改。

1. 宝塔/cPanel 面板

登录面板文件管理,找到 WordPress 根目录。右键点击 wp-content 文件夹,选择“权限”。所有者通常无需修改,确保“写入”权限勾选。权限值建议设置为 755。内部文件权限建议为 644。

2. FTP 客户端(如 FileZilla)

WordPress 更新失败提示无法创建目录怎么回事?

连接服务器后,右键点击 wp-content 目录,选择“文件权限”。勾选“写入”,权限值填 755。建议勾选“递归应用到子目录”,但需注意不要将文件权限也设为可执行,部分客户端支持区分文件与目录,若不支持,后续需在后台验证安全性。

查看错误日志定位问题

如果权限修改后仍报错,建议开启 WordPress 调试模式查看具体日志。

在 wp-config.php 文件中,找到 /* That's all, stop editing! Happy publishing. */ 之前,添加或修改以下配置:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

保存后再次尝试更新,错误信息会记录在 wp-content/debug.log 文件中。查看该文件末尾内容,可定位是权限拒绝还是磁盘 quota 限制。

WordPress 更新失败提示无法创建目录怎么回事?

配置文件调整(谨慎使用)

如果权限无误但仍报错,可能是服务器限制了 PHP 直接写入。可以在 wp-config.php 文件中添加定义,强制使用直接文件系统访问:

define( 'FS_METHOD', 'direct' );

注意:此配置可能掩盖真正的权限配置错误。仅在确认文件所有者正确且权限无误的情况下使用。更新完成后,建议观察网站运行状态。

验证与安全加固

回到 WordPress 后台,尝试再次点击更新按钮。如果不再提示“无法创建目录”,且更新进度条正常走动,说明问题已解决。

安全建议:

  • 不要为了方便直接将所有文件权限设置为 777,这会带来严重的安全风险。
  • 更新完成后,如果之前修改了所有权,建议根据 hosting 环境的要求恢复原有配置。
  • 如果使用了安全插件,检查是否锁定了 wp-content 目录。
  • 调试完成后,记得将 WP_DEBUG 设置为 false,避免日志暴露敏感信息。

参考来源

  • WordPress Support - Changing File Permissions: https://wordpress.org/support/article/changing-file-permissions/
  • WordPress Support - Editing wp-config.php - Filesystem Method: https://wordpress.org/support/article/editing-wp-config-php/#filesystem-method