经过一整天的研究,为什么我无法让我的应用程序使用 PHP PDO 通过 SSL 连接到远程服务器,我发现了 PDO::MYSQL_ATTR_SSL...,但它们似乎只存在于 5.3.7 或更高版本。
我的问题是这样的。 SSL 支持仅适用于 PHP 5.3.7 及更高版本吗?还是我的结论不正确?
答案1
根据文档,ssl 支持在 5.3.7 中引入。
更新日志:
- 5.4.0 MySQL 客户端库 4.1 及以下版本不再受支持。
- 5.3.9 增加了对 mysqlnd 和 OpenSSL 的 SSL 支持。
- 5.3.7 增加了对 libmysqlclient 和 OpenSSL 的 SSL 支持。
和属性仅适用于 5.3.7 或更高版本。
PDO::MYSQL_ATTR_SSL_CA (integer)
The file path to the SSL certificate authority.
This exists as of PHP 5.3.7.
PDO::MYSQL_ATTR_SSL_CAPATH (integer)
The file path to the directory that contains the trusted SSL CA certificates, which are stored in PEM format.
This exists as of PHP 5.3.7.
PDO::MYSQL_ATTR_SSL_CERT (integer)
The file path to the SSL certificate.
This exists as of PHP 5.3.7.
PDO::MYSQL_ATTR_SSL_CIPHER (integer)
A list of one or more permissible ciphers to use for SSL encryption, in a format understood by OpenSSL. For example: DHE-RSA-AES256-SHA:AES128-SHA
This exists as of PHP 5.3.7.
PDO::MYSQL_ATTR_SSL_KEY (integer)
The file path to the SSL key.
This exists as of PHP 5.3.7.
答案2
要获得 SSL 支持,您必须启用php_openssl模块。否则,您没有库来建立连接。这里与file_get_contents例如。
检查模块是否已激活以及openssl是否已安装。
如果您使用 Linux 系统,您可以通过包管理器安装该模块。