首页 > 解决方案 > 应用引擎上的 Symfony3 会话失败

问题描述

我想将 Session 存储在 DB 上,我在 symfony 文档中点击了这个链接

在本地环境中我没有任何问题,但是当我在 appengine 上进行部署时,我可以在日志中看到这个问题

2018-06-07 09:15:24 default[20180607t110053]  [07-Jun-2018 09:15:24] WARNING: [pool app] child 11 said into stderr: "NOTICE: PHP message: PHP Fatal error:  Uncaught PDOException: SQLSTATE[HY000] [2002] No such file or directory in /app/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/PdoSessionHandler.php:403"
2018-06-07 09:15:24 default[20180607t110053]  [07-Jun-2018 09:15:24] WARNING: [pool app] child 11 said into stderr: "Stack trace:"
2018-06-07 09:15:24 default[20180607t110053]  [07-Jun-2018 09:15:24] WARNING: [pool app] child 11 said into stderr: "#0 /app/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/PdoSessionHandler.php(403): PDO->__construct('mysql:host=;por...', 'root', 'MYPASS...', Array)"
2018-06-07 09:15:24 default[20180607t110053]  [07-Jun-2018 09:15:24] WARNING: [pool app] child 11 said into stderr: "#1 /app/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/PdoSessionHandler.php(264): Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler->connect('mysql:host=;por...')"
2018-06-07 09:15:24 default[20180607t110053]  [07-Jun-2018 09:15:24] WARNING: [pool app] child 11 said into stderr: "#2 /app/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/Session/Storage/Proxy/SessionHandlerProxy.php(46): Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler->open('/tmp/sessions', 'PHPSESSID')"
2018-06-07 09:15:24 default[20180607t110053]  [07-Jun-2018 09:15:24] WARNING: [pool app] child 11 said into stderr: "#3 [internal function]: Symfony\Component\HttpFoundation\Session\Storage\Proxy\SessionHandlerProxy->open('/tmp/sessions', 'PHP..."
2018-06-07 09:15:24 default[20180607t110053]  2018/06/07 09:15:24 [error] 9#9: *1 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught PDOException: SQLSTATE[HY000] [2002] No such file or directory in /app/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/PdoSessionHandler.php:403
2018-06-07 09:15:24 default[20180607t110053]  Stack trace:
2018-06-07 09:15:24 default[20180607t110053]  #0 /app/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/PdoSessionHandler.php(403): PDO->__construct('mysql:host=;por...', 'root', 'MYPASS...', Array)
2018-06-07 09:15:24 default[20180607t110053]  #1 /app/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/PdoSessionHandler.php(264): Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler->connect('mysql:host=;por...')
2018-06-07 09:15:24 default[20180607t110053]  #2 /app/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/Session/Storage/Proxy/SessionHandlerProxy.php(46): Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler->open('/tmp/sessions', 'PHPSESSID')
2018-06-07 09:15:24 default[20180607t110053]  #3 [internal function]: Symfony\Component\HttpFoundation\Session\Storage\Proxy\SessionHandlerProxy->open('/tmp/sessions', 'PHPSESSID')" while reading response header from upstream, client: 172.17.0.4, server: , request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "myproject.appspot.com"
2018-06-07 09:15:24 default[20180607t110053]  172.17.0.4 - - [07/Jun/2018:09:15:24 +0000] "GET / HTTP/1.1" 500 5 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36"

好像主机mysql是空的

mysql:主机=;

标签: phpsymfonygoogle-app-enginesessionsymfony-3.3

解决方案


我建议您检查主机是否在 yaml 文件中配置,如下所示。如果这不起作用,请查看本教程以在 App Engine 上启动和运行 Symphony。

还值得通过更改 database_host 值在此线程上测试此故障排除。此处发布了类似的故障排除。


推荐阅读