首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Fedora上为PDO-MySQL安装SSL

问在Fedora上为PDO-MySQL安装SSL
EN

Stack Overflow用户
提问于 2015-03-16 19:43:10
回答 1查看 688关注 0票数 0

我想在Fedora上为MySQL设置SSL。我在PHP中使用PDO作为MySQL-连接器。但这是行不通的。

(php -v)是:

PHP 5.6.6 (cli) (建成日期:2015年2月19日13:46:39)

当我检查php -m时,我会得到一个很长的列表,包括openssl、PDO、pdo_mysql和mysql。

在/etc/my.cnf中,我添加了"ssl“和三个证书(CA-root、私钥、证书)。我重新启动了MySQL和Apache。

pdo-连接器如下:

代码语言:javascript
复制
function getDBConn() {
    return new PDO(
        'mysql:host=localhost; dbname=forum',
        user,
        pass,
        array(
            PDO::MYSQL_ATTR_SSL_KEY => path_to_same_as_in_my.cnf.key,
            PDO::MYSQL_ATTR_SSL_CERT => path_to_same_as_in_my.cnf.crt,
            PDO::MYSQL_ATTR_SSL_CA => path_to_same_as_in_my.cnf.crt
        )

}

但是,在连接到数据库的页面上,我得到以下错误:

代码语言:javascript
复制
Warning: PDO::__construct(): this stream does not support SSL/crypto in /var/www/html/functions.php on line 78
Warning: PDO::__construct(): cannot connect to MySQL by using SSL in /var/www/html/functions.php on line 78
Warning: PDO::__construct(): [2002] (trying to connect via unix:///var/lib/mysql/mysql.sock) in /var/www/html/functions.php on line 78
FATAL ERROR: Uncaught exception 'PDOException' with message 'SQL:STATE[HY000][2002]' in /var/www/html/functions.php:78 Stack trace .....

有谁能解决这个问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-16 19:55:13

对于使用SSL的PDO MySQL,您只需要这样做。

代码语言:javascript
复制
<?php
$pdo = new PDO('mysql:host=ip;dbname=db', 'user', 'pass', array(
    PDO::MYSQL_ATTR_SSL_KEY    =>'/etc/mysql/ssl/client-key.pem',
    PDO::MYSQL_ATTR_SSL_CERT=>'/etc/mysql/ssl/client-cert.pem',
    PDO::MYSQL_ATTR_SSL_CA    =>'/etc/mysql/ssl/ca-cert.pem'
    )
);
$statement = $pdo->query("SHOW TABLES;");
$row = $statement->fetch(PDO::FETCH_ASSOC);
echo htmlentities($row['_message']);
?>

获得错误的另一个最大原因是您可能没有安装openssl。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29085598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档