如何将 AWS ELB 连接到运行 MS SQL 的 RDS?
Posted
技术标签:
【中文标题】如何将 AWS ELB 连接到运行 MS SQL 的 RDS?【英文标题】:How to connect AWS ELB to RDS running MS SQL? 【发布时间】:2016-06-29 07:42:59 【问题描述】:AWS 明确声明 here 和 Q&A 可以使用 Elastic Beanstalk 上的 php 实例连接到 MS SQL 服务器。
但是,似乎没有办法安装 MSSQL 驱动程序。
例如,从 ELB 命令行安装 yum php-mssql
会生成错误,指出所需依赖项的版本太高。
这是一个经典的错误报告:
--> 运行事务检查 ---> 将安装包 php-common.x86_64 0:5.3.29-1.8.amzn1 --> 处理冲突:php54-common-5.4.45-1.75.amzn1.x86_64 冲突 php-common --> 处理冲突:php54-pdo-5.4.45-1.75.amzn1.x86_64 冲突 php-pdo --> 完成依赖解决错误:php54-pdo 与 php-pdo-5.3.29-1.8.amzn1.x86_64 冲突 错误:php54-common 与 php-common-5.3.29-1.8.amzn1.x86_64 冲突 您可以尝试使用 --skip-broken 来解决此问题 您可以尝试运行:rpm -Va --nofiles --nodigest
那么如何在 AWS ELB 上使用 PHP 连接到 MS-SQL?
【问题讨论】:
【参考方案1】:解决方案是在创建 beanstalk 应用程序时选择 Amazon Linux5.3 版。
在Environment Type屏幕上选择PHP后,下一行显示:
AWS Elastic Beanstalk 将创建一个在 64 位 Amazon Linux 2015.09 v2.0.8 上运行 PHP 5.6 的环境。 Change platform version.
单击链接Change platform version,您将获得可能版本的下拉列表。
似乎唯一可行的版本是列表中的最后一个:64 位 Amazon Linux 上的 5.3(我没有尝试 32 位,它可能也可以。)
然后在 .ebextensions 文件夹中创建一个 01.config 文件,并确保它包括:
packages:
yum:
php-mssql: []
注意:此文件中的缩进计数。
您现在可以使用如下代码进行连接:
<?php
// connect to database server
$db_conn = mssql_connect("your.rds.amazonaws.com","user","passw0rd")
or die( "<strong>ERROR: Connection to MYSERVER failed</strong>" );
// select database - only if we want to query another database than the default one
mssql_select_db( "database1", $db_conn )
or die( "<strong>ERROR: Selecting database failed</strong>" );
// query the database
$query_result = mssql_query( "SELECT * FROM table1", $db_conn )
or die( "<strong>ERROR: Query failed</strong>" );
$row = mssql_fetch_array($query_result);
echo $row[0];
?>
现在它可以按预期工作了。
这是 2 天工作的结果,在此分享,因为此信息似乎在任何地方都不存在。
【讨论】:
以上是关于如何将 AWS ELB 连接到运行 MS SQL 的 RDS?的主要内容,如果未能解决你的问题,请参考以下文章
AWS ELB - 服务 A 无法连接到同一安全组中的服务 B
如何将 QNAP Web 服务器连接到 Microsoft MS SQL
如何在 Istio 中设置 AWS ALB 而不是 ELB?