【问题标题】:How to connect to MySQL using SSL on symfony/doctrine如何在 symfony/doctrine 上使用 SSL 连接到 MySQL
【发布时间】:2013-05-17 01:24:41
【问题描述】:

我正在尝试连接到启用了 SSL 的 MySQL。 我正在使用带有 Doctrine 的 Symfony2 框架。

在普通的 PHP 中,我可以用

来实现
$link = mysql_connect("127.0.0.1:3306","test","testpass",true,MYSQL_CLIENT_SSL);

有谁知道我如何在 symfony/doctrine 中做到这一点? config.yml 中正确的学说配置是什么?

更新:

也许我的问题是“config.yml 中正确的学说配置是什么?”是错的。 那么,我该怎么做呢?我应该从哪里开始?

谢谢

【问题讨论】:

    标签: php mysql symfony doctrine


    【解决方案1】:

    在学说聊天室的人的帮助下,经过长时间的搜索,我找到了答案。

    这是适用于 PHP > 5.3.7 的 dbal 配置 它使用 5.3.7 之前 PHP 不可用的三个 PDO 常量

    在标准 PDO 连接中:

    $conn = new PDO("mysql:host=localhost;port=3307;database=dbname", "user1", "password1",
        array(
            1010 => '/path/to/certs/priv_key.pem',
            1011 => '/path/to/certs/pub_cert.pem',
            1012 => '/path/to/certs/ca_cert.pem',
        )
    );
    

    如果尝试上面的代码给你一个错误,你的 PHP 版本可能是

    现在解决 config.yml 中的 DBAL 配置

    doctrine:
        dbal:
            default_connection: default
            connections:
                default:
                    driver:   %database_driver%
                    host:     %database_host%
                    port:     %database_port%
                    dbname:   %database_name%
                    password: %database_password%
                    charset:  UTF8
                    mapping_types:
                        enum: string
                    options:
                        1010 : %priv_key% 
                        1011 : %pub_cert% 
                        1012 : %ca_cert%
    
                default2: # second connection ...
    
        orm:
            # orm configuration here ....
    

    希望这对尝试使用 SSL 进行连接的任何人有所帮助。事实上,如果可能的话,建议对所有数据库连接使用 SSL。

    【讨论】:

    • 正确答案!但是,不知道我应该把所有这些 *.pem 放在哪里,以及路径应该是什么样的......
    【解决方案2】:

    只想指出以下SSL属性常量的整数值在PHP 5.4.16中如下:

    PDO:MYSQL_ATTR_SSL_KEY: 1007
    PDO:MYSQL_ATTR_SSL_CERT: 1008
    PDO:MYSQL_ATTR_SSL_CA: 1009
    

    它们可能因一个版本而异,so best to check these values before plugging them into the DBAL confiugration.

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-14
    • 2011-09-09
    • 2012-06-20
    • 2015-09-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多