【问题标题】:symfony2: Setting PdoSessionHandler correctlysymfony2:正确设置 PdoSessionHandler
【发布时间】: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.iniapplication - 您的覆盖配置)?

标签: mysql session symfony symfony-2.1


【解决方案1】:

将此添加到您在 mysql 中的参数中:

services:
pdo:
    class: PDO
    arguments:
        - "mysql:dbname=%database_name%;host=%database_host%"
        - %database_user%
        - %database_password%
    calls:
        - [setAttribute, [3, 2]] # \PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION
session.handler.pdo:
    class:     Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler
    arguments: ["@pdo", "%pdo.db_options%"]        

您的配置中没有数据库主机,并且 PDO 类中的第一个参数 ($dsn) 有两个参数,由分号分隔,dbname 和 dbhost,希望对您有所帮助,加油!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多