1

AWS は、ここQ&Aで、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-共通 < 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 と競合し
ます
次のコマンドを実行してみてください: 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 に答える