You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Drupal复制站点后settings.php数据库配置修改不生效求助

解决Drupal修改settings.php数据库配置不生效的问题

嘿,我碰到过好几个朋友遇到这种情况,咱们一步步排查,肯定能揪出问题!

  • 先确认你改对文件了吗?
    Drupal有时候会根据站点域名加载不同目录下的配置文件,比如sites/你的域名/settings.php,优先级比sites/default/settings.php高。另外如果存在sites/default/settings.local.php,这个文件里的配置会直接覆盖主settings.php的内容,你之前提到检查了local.settings,应该是这个文件吧?
    实在拿不准的话,临时在站点根目录的index.php里加一行代码:

    print_r(DRUPAL_ROOT . '/' . conf_path() . '/settings.php');
    exit;
    

    访问站点就能看到实际加载的配置文件路径了,用完记得删掉这两行哦!

  • 缓存!缓存!缓存!重要的事说三遍
    Drupal的配置缓存会把数据库连接信息存在缓存里,哪怕你改了settings.php,缓存没清的话还是会用旧的。

    • 如果能访问Drush命令行,直接跑drush cache:rebuild(Drupal 8及以上版本)或者drush cc all(旧版本)。
    • 没Drush的话,手动删除sites/default/files/php/twig和sites/default/files/config_*目录下的所有文件;另外如果服务器开了OPcache,得重启PHP服务或者刷新OPcache(可以在phpinfo里找OPcache的刷新入口)。
  • 检查文件权限和所有权
    如果settings.php的权限不对,Drupal可能读不到你修改的内容,甚至会 fallback 到默认配置。一般把权限设为644,所有权改成服务器的Web用户(比如www-data、apache,根据你的服务器环境调整):

    chmod 644 sites/default/settings.php
    chown www-data:www-data sites/default/settings.php
    
  • 有没有模块或配置系统覆盖了你的设置?

    • 有些自定义模块或者 contrib 模块可能会硬编码数据库连接信息,你可以用命令搜一下整个代码库:grep -r "\$databases" sites/,看看有没有其他地方定义了$databases数组。
    • 对于Drupal 8+,如果之前导出过配置到sites/default/config/sync,里面的core.database.yml会覆盖settings.php的配置,你可以暂时把这个目录重命名,看看站点会不会用你新改的配置。
  • 验证数据库配置本身是否有效
    虽然你填错误信息没反应,但还是可以写个简单的PHP脚本测试连接,比如在站点根目录建test_db.php:

    <?php
    $conn = mysqli_connect('my_db_host', 'my_db_user', 'my_db_password', 'my_db_database', 3306);
    if (!$conn) {
        die("连接失败: " . mysqli_connect_error());
    }
    echo "数据库连接成功!";
    mysqli_close($conn);
    ?>
    

    访问这个脚本,确认你的数据库信息是能正常连接的,排除数据库本身的问题。

  • 检查服务器环境变量
    有些服务器会用环境变量来配置数据库,比如在php.ini或者Apache虚拟主机配置里定义了DB_NAME、DB_USER等变量,而你的settings.php里可能用了getenv('DB_NAME')这类代码来读取环境变量,而不是硬编码的值。可以看看settings.php里有没有类似的代码。

先从前面两个步骤开始排查,这是最常见的原因,大概率能解决问题!

内容的提问来源于stack exchange,提问作者Amy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:22:28