1

AWS在此处问答中明确指出,可以使用 Elastic Beanstalk 上的 PHP 实例连接到 MS SQL 服务器。

但是,似乎没有办法安装 MSSQL 驱动程序。

例如,yum php-mssql从 ELB 命令行安装会生成错误,指出所需依赖项的版本太高。

这是一个经典的错误报告:

--> 运行事务检查
---> 将安装包 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-common 与 php-common-5.3.29-1.8.amzn1.x86_64 冲突
您可以尝试使用 --skip-broken 来解决此问题
您可以尝试运行: rpm -Va --nofiles --nodigest

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

4

1 回答 1

1

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

Environment Type屏幕上选择PHP后,下一行显示:

AWS Elastic Beanstalk 将创建一个在 64 位 Amazon Linux 2015.09 v2.0.8 上运行 PHP 5.6 的环境。更改平台版本

单击链接更改平台版本,您将获得可能版本的下拉列表。

AWS PHP Linux 版本

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

于 2016-03-14T10:12:04.547 回答