2016-03-14 3 views
1

AWS четко заявляет here и в Q&A, что можно подключиться к серверу MS SQL с использованием экземпляра PHP на эластичном бобовом стебле.Как подключить AWS ELB к RDS с помощью MS SQL?

Однако, как представляется, невозможно установить драйверы MSSQL.

Например, установка yum php-mssql из командной строки ELB создает ошибки, указывающие на то, что версии требуемых зависимостей слишком велики.

Вот классическое сообщение об ошибке:

--> Running transaction check
---> Package php-common.x86_64 0:5.3.29-1.8.amzn1 will be installed
--> Processing Conflict: php54-common-5.4.45-1.75.amzn1.x86_64 conflicts php-common < 5.4.45-1.75.amzn1
--> Processing Conflict: php54-pdo-5.4.45-1.75.amzn1.x86_64 conflicts php-pdo < 5.4.45-1.75.amzn1
--> Finished Dependency Resolution
Error: php54-pdo conflicts with php-pdo-5.3.29-1.8.amzn1.x86_64
Error: php54-common conflicts with php-common-5.3.29-1.8.amzn1.x86_64
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest

Так как же подключиться к MS-SQL с PHP на AWS УДРА?

ответ

1

Решение заключается в том, чтобы выбрать Amazon Linux версии 5.3 при создании приложения beanstalk.

После выбора PHP на окружающую среду Тип экрана , следующая строка говорит:

AWS Elastic Beanstalk will create an environment running PHP 5.6 on 64bit Amazon Linux 2015.09 v2.0.8. Change platform version .

Нажмите на ссылку Change platform version и вы получите выпадающий из возможных вариантов.

AWS PHP Linux versions

Единственная версия, которая, кажется, работает последний один в списке: 5,3 на 64-битных Amazon Linux (я не пробовал 32bit, бит это, вероятно, также работает.)

Тогда создать 01.config файл, который находится в .ebextensions папку и убедитесь, что она включает в себя:

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]; 
?> 

Теперь он работает, как ожидалось.

Это результат двухдневной работы, доступной здесь, поскольку эта информация нигде не существует.

Смежные вопросы