如何将AWS ELB连接到运行MS SQL的RDS?

时间:2016-03-14 10:12:05

标签: php sql-server amazon-web-services amazon-elb aws-rds

AWS明确指出hereQ&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< 5.4.45-1.75.amzn1
   - >处理冲突:php54-pdo-5.4.45-1.75.amzn1.x86_64冲突php-pdo< 5.4.45-1.75.amzn1
   - >完成的依赖决议
  错误:php54-pdo与php-pdo-5.3.29-1.8.amzn1.x86_64发生冲突   错误:php54-与php-common-5.3.29-1.8.amzn1.x86_64的常见冲突    您可以尝试使用--skip-broken来解决问题    您可以尝试运行:rpm -Va --nofiles --nodigest

那么如何在AWS ELB上使用PHP连接到MS-SQL?

1 个答案:

答案 0 :(得分:1)

解决方案是在创建beanstalk应用程序时选择Amazon Linux 5.3版

环境类型屏幕上选择 PHP 后,下一行说:

  

AWS Elastic Beanstalk将在64位Amazon Linux 2015.09 v2.0.8上创建运行PHP 5.6的环境。 Change platform version

点击链接Change platform version,您将看到可能版本的下拉列表。

AWS PHP Linux versions

唯一可行的版本是列表中的最后一个版本: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天工作的结果,在这里分享,因为此信息似乎不存在于任何地方。