Активирайте PHP разширение (php_odbc.dll) на Azure

Започнах да работя с Azure и да тествам свързаност към Microsoft SQL база данни. Бих искал да използвам текущото ни разширение php_odbc.dll, вместо да използвам PDO подхода.

  $query = "SELECT * FROM TABLE ";          
  //perform the query 
  $result=odbc_exec($conn, $query); 

Изпълних стъпките за добавяне на разширение чрез конфигуриране чрез настройка на приложението и конфигуриране чрез ini настройки. И двата начина карат основната ми индексна страница да извежда грешка 500. Моят основен index.php включва само phpinfo(); функция за тестване.

https://docs.microsoft.com/bs-latn-ba/azure/app-service/web-sites-php-configure#configure-via-app-setting

Въпрос: Как да активирам php_odbc.dll ext на Azure? PHP версията е 7.3


person Nick Kester    schedule 17.01.2020    source източник
comment
Виждате ли някакви грешки в регистрационните файлове на приложението под D:\home\LogFiles? Освен това dll трябва да не е безопасна за нишки, VC9 или VC11 съвместима версия на PHP за Windows.   -  person Gaurav Kumar    schedule 18.01.2020


Отговори (1)


Виждам, че сте използвали Azure WebApp за Windows, за да внедрите вашето PHP приложение с връзка с Azure SQL база данни от php_odbc.dll.

Както знам, Azure WebApp за Windows има инсталирани няколко версии на PHP среда за изпълнение с много разширения, които включват PHP 7.3, който е под пътя D:\Program Files (x86)\PHP като фигурата по-долу, и проверих php_odbc.dll дали be съществува чрез Kudo конзола https://<your webapp name>.scm.azurewebsites.net/DebugConsole

въведете описание на изображението тук

След това се преместих на v7.3, за да видя файла php.ini, за да проверя дали разширението php_odbc.dll е активирано.

въведете описание на изображението тук

въведете описание на изображението тук

Както на фигурата по-горе, можете да видите, че няма php_odbc декларирано в php.ini, така че не е активирано по подразбиране. И Azure регулира всички файлове и директории под D:\ (с изключение на D:\home), които не могат да бъдат променяни от клиентите, така че опитът за редактиране на php.ini, за да се активира php_odbc, ще доведе до проблем с грешка.

въведете описание на изображението тук

Така че решението е да се обърнете към раздела How to: Enable extensions in the default PHP runtime от официалния документ Configure PHP in Azure App Service като фигурата по-долу, за да активирате съществуващо разширение по подразбиране.

въведете описание на изображението тук

По подразбиране може да няма директория с име ini в пътя D:\home\site, която трябва да бъде създадена от вас, а след това да създадете файл с име extensions.ini под нея и да го редактирате, за да добавите името на разширението или абсолютния път на php_odbc.

; Enable Extensions
extension=php_odbc
; Or use its absoluted path, such as for 32bit platform
; extension=D:\Program Files (x86)\PHP\v7.3\ext\php_odbc.dll

След като рестартирате вашето Azure WebApp, можете да опитате вашата PHP страница отново.

person Peter Pan    schedule 20.01.2020
comment
Това работи перфектно. Благодаря ти. Трябваше да променя своя ini файл с правилното разширение; разширение=php_odbc - person Nick Kester; 20.01.2020
comment
@NickKester Радвам се да чуя това. Можете ли да отбележите отговора ми? Благодаря! - person Peter Pan; 21.01.2020