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

Symfony部署至Heroku后注册用户出现500错误及数据库连接拒绝问题

解决Symfony部署Heroku后数据库连接拒绝问题

从日志看,你的应用仍在尝试连接本地PostgreSQL(127.0.0.1:5432),而非Heroku提供的远程数据库实例,这是导致连接拒绝的核心原因。按以下步骤排查修复:

  • 确保DATABASE_URL读取Heroku环境变量
    打开项目根目录的.env文件,将DATABASE_URL设置为从环境变量获取,不要硬编码本地连接信息:

    DATABASE_URL=${DATABASE_URL}
    

    若存在.env.prod,同样要保证该文件中的DATABASE_URL使用上述配置,而非本地地址。

  • 检查Doctrine配置的环境变量解析
    打开config/packages/doctrine.yaml,确认生产环境的数据库URL配置使用resolve:前缀,确保环境变量被正确解析:

    doctrine:
      dbal:
        url: '%env(resolve:DATABASE_URL)%'
    
  • 验证Heroku的DATABASE_URL环境变量
    通过Heroku CLI查看应用的环境变量,确认存在正确的远程数据库连接地址:

    heroku config:get DATABASE_URL --app 你的应用名称
    

    输出的URL应该是类似postgres://xxxx:yyyy@ec2-xx-xx-xx-xx.compute-1.amazonaws.com:5432/zzzz的远程地址,而非本地地址。

  • 清除生产环境缓存
    部署后执行缓存清除命令,确保Symfony加载最新的数据库配置:

    heroku run php bin/console cache:clear --env=prod
    

    也可以在composer.json的scripts中添加自动执行逻辑,避免每次部署手动操作:

    "scripts": {
        "post-install-cmd": [
            "@auto-scripts",
            "php bin/console cache:clear --env=prod"
        ]
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 03:45:30