加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 如何在symfony / doctrine上使用SSL连接到MySQL

发布时间:2020-12-13 22:13:16 所属栏目:PHP教程 来源:网络整理
导读:我正在尝试连接到启用了SSL的 MySQL. 我正在使用带有Doctrine的Symfony2框架. 在普通的PHP中,我可以实现这一点 $link = mysql_connect("127.0.0.1:3306","test","testpass",true,MYSQL_CLIENT_SSL); 有没有人知道我如何在symfony / doctrine中做到这一点? c
我正在尝试连接到启用了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的dbal配置> 5.3.7
它使用三个PDO常量,这些常量在5.3.7之前不适用于PHP

在标准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版本可能是< 5.3.7那么您不太可能将PDO与SSL一起使用. 现在是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连接所有数据库连接.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读