我已经能够按照example here将示例Symfony 3应用程序部署到Google AppEngine灵活的PHP应用程序。然后,我将 CloudSQL API 添加到项目和 app.yaml
中的条目,因此当我通过 SSH 连接到实例时,我可以在 /cloudsql/
中看到 MySQL 套接字。然后,我将 Doctrine 包添加到 Symfony 项目中,设置了几个模型等,在本地测试成功,并尝试将应用程序重新部署到 Google。
当部署进程运行 Composer 时,它会运行 composer.json
中定义的 symfony-scripts
条目。其中一些例程显然需要访问数据库,但这失败了。我从 clearCache
脚本中收到 驱动程序中发生异常:SQLSTATE[HY000] [2002] No such file or directory
错误。如果我从 composer.json
中删除该条目并重试,我会从下一个脚本中收到相同的错误。
我开始认为在应用程序部署
过程中可能没有配置连接到数据库的套接字。有没有人尝试过做类似的事情并让它发挥作用?
最佳答案
回答我自己的问题...
Why does a composer update need access to the database
在我的 app/config/config.yml
中的 doctrine
dbal
下添加 server_version: 5.7
修复了此问题。在 composer 安装
期间,它不再尝试连接到数据库,并且应用程序现在已部署。
关于php - 部署到灵活的 PHP App Engine 时访问 Cloud SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47180799/