如何通过修改wp-config.php解决WordPress无法直接安装插件的问题?

当 WordPress 无法直接安装或更新插件时,通常是因为服务器配置限制了直接文件系统访问(例如缺少 wp-content 目录的写权限),导致 WP 尝试使用 FTP/SFTP 方式连接。你可以通过在 wp-config.php 中强制启用“直接写入”模式来绕过此限制。

✅ 解决方案:修改 wp-config.php

  1. 备份文件
    操作前务必备份 wp-config.php(通过 FTP、SSH 或主机控制面板)。

  2. 找到并编辑 wp-config.php
    打开位于网站根目录的 wp-config.php 文件,在 /* That's all, stop editing! Happy publishing. */ 这行注释之前添加以下代码:

define('FS_METHOD', 'direct');

💡 注意:

  • 必须放在 require_once(ABSPATH . 'wp-settings.php'); 之前(通常在文件末尾附近)。
  • 确保语法正确(分号结尾,无多余空格/换行)。
  1. 保存并测试
    保存文件后,刷新 WordPress 后台 → “插件” → “安装插件”,尝试安装一个新插件。若成功,则问题已解决。

⚠️ 重要前提与注意事项

条件 说明
✅ 文件权限正确 确保 wp-content 及其子目录(如 plugins, themes)对 Web 服务器用户(如 www-data, apache, nginx)有写权限(建议 755 目录 + 644 文件;临时可设为 775 测试,但生产环境慎用)。
❌ 非共享主机限制 某些虚拟主机(Shared Hosting)因安全策略禁止 direct 方法,此时即使加此行仍无效,需联系主机商开启或直接授权。
🔒 安全性提醒 FS_METHOD = 'direct' 会降低部分安全层(依赖 OS 权限控制),仅建议在确认权限安全后使用。生产环境更推荐修复底层权限而非长期依赖此 hack。

🔍 如果仍然失败?排查步骤

  1. 检查错误日志(wp-content/debug.log,需先在 wp-config.php 中添加):
    define('WP_DEBUG', true);
    define('WP_DEBUG_LOG', true);
  2. 验证当前 PHP 进程用户:
    ls -ld wp-content
    # 输出类似:drwxr-xr-x 2 www-data www-data ...

    确保该用户对目标目录有写权限。

  3. 尝试手动创建插件测试:
    mkdir -p wp-content/plugins/test-plugin
    echo "<?php /* Test Plugin */" > wp-content/plugins/test-plugin/index.php

    若能手动创建,则问题确为权限;否则可能是 SELinux、AppArmor 或云盘挂载限制。


需要我帮你生成完整的 wp-config.php 修改示例片段,或提供针对不同主机环境(如阿里云、腾讯云、LocalWP)的权限设置指南吗?