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