Назад | Перейти на главную страницу

PHP в IIS не загружает расширение sqlsrv

Я пытаюсь создать страницу, которая может отправлять данные из формы в базу данных MSSQL через PHP. Я успешно установил PHP (phpinfo() отлично работает даже на удаленном компьютере), но не загружает расширение sqlsrv. Я знаю что редактирую право php.ini файл, потому что у меня добавлено другое расширение (wincache), и он загружается нормально, что подтверждается обоими phpinfo() и get_loaded_extensions().

Журналы мне ничего не говорят. Менеджер PHP в IIS сообщает мне, что файлы расширения sqlsrv включены. Я перезапустил веб-сайт, сервер и компьютер, но ничего не работает.

Я использую PHP 7.1.1 на машине с Windows 7 Ultimate. Он работает в режиме x64, без защиты потоков. Я убедился, что файлы расширений, которые я включил, являются файлами x64, не ориентированными на многопоточность. Я не знаю, что еще проверить или какую дополнительную информацию мне нужно предоставить.

РЕДАКТИРОВАТЬ: Я побежал php-cgi.exe так как эта страница предложил, и он получил сообщение об ошибке:

[31-Mar-2017 22:38:12 UTC] PHP Warning:  PHP Startup: Unable to load dynamic library 'C:\Program Files\iis express\PHP\v7.1\ext\php_sqlsrv_7_nts_x64.dll' - The specified procedure could not be found.
 in Unknown on line 0
[31-Mar-2017 22:38:17 UTC] PHP Warning:  PHP Startup: Unable to load dynamic library 'C:\Program Files\iis express\PHP\v7.1\ext\php_pdo_sqlsrv_7_nts_x64.dll' - The specified procedure could not be found.
 in Unknown on line 0

Означает ли это, что проблема в самих библиотеках расширений? Как я могу это исправить?

Я уверен, что вы уже поняли это, но если у кого-то еще возникают подобные ошибки, убедитесь, что вы используете правильную версию DLL, т.е. php_sqlsrv_VERSION_THREADSAFETY_ARCHITECTURE.dll. Так положите php_sqlsrv_71_nts_x86.dll или тот, который совместим с вашей машиной и настройкой.

Похоже, что расширение slqsrv еще не поддерживает PHP 7.1

На момент написания (июль 2017 г.) похоже, что предварительная версия доступен для загрузки, поэтому я думаю, что производственная версия не может быть далеко