【发布时间】:2012-08-27 12:49:42
【问题描述】:
我按照 symfony 2.1 食谱页面使用 PDO 保存 sessing 数据,在此链接上:http://symfony.com/doc/master/cookbook/configuration/pdo_session_storage.html 问题是,在我的开发机器上,一切正常....当我清除开发或生产环境的缓存时 但在我的生产机器(实时服务器)上,我得到了错误:
[PDOException]
SQLSTATE[HY000] [2002] Can't connect to local MySQL server
through socket '/tmp/mysql.sock' (2)
当使用php app/console cache:clear --env=prod 清除缓存时
所以我的实时服务器和我的开发机器之间似乎有些不同,尽管 config.yml 中的代码是相同的。
我在services:下使用这些设置
pdo:
class: PDO
arguments:
- "mysql:dbname=%database_name%"
- %database_user%
- %database_password%
session.handler.pdo:
class: Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler
arguments: [@pdo, %pdo.db_options%]
当我这样做时ls -la /tmp/mysql.sock
我明白了
ls: cannot access /tmp/mysql.sock: No such file or directory
【问题讨论】:
-
你能在 symfony 之外使用 prod 服务器中的给定凭据连接到 MySQL 吗?
-
mysql 运行良好,live 站点运行良好....但它没有在表中写入会话数据,似乎仍在磁盘或其他任何地方写入。
-
这看起来更像是服务器配置问题,而不是 symfony 的问题。 PHP 和 MySQL 在两台服务器上的配置是否相同?
-
是的,两者都配置在同一台服务器上。本地主机= 127.0.0.1
-
@Dan Symfony2 覆盖默认的 php 配置。 @Confidence - 您能否在控制器中的某处插入
phpinfo();die;并检查application部分中的会话存储(还有default部分,代表您的php.ini和application- 您的覆盖配置)?
标签: mysql session symfony symfony-2.1