У меня есть комбинация Ubuntu VM/Azure SQL DB, в которой есть два набора файлов PHP.
1) Некоторые скрипты, которые запускаются из заданий CRON
2) Веб-сайт Yii2 Framework
Обе среды подключаются к базе данных SQL Server.
Я сделал все шаги для компиляции sqlsrv и добавил его в список расширений PHP. Мои скрипты отлично работают из терминала, но на сайте я получаю сообщение об ошибке:
could not find driver
Мой веб-сервер — nginx, и он правильно запускает веб-сайт, но PDO не подключается к SQL Server.
У меня есть только одна установка PHP, но, тем не менее, я использовал код, чтобы определить, какой файл php.ini используется правильно и имеет правильную директиву расширений.
Вывод phpinfo() также показывает sqlsrv в разделе «Зарегистрированные потоки PHP».
Мой брандмауэр UFW неактивен, и у меня нет SUSELinux. Тем не менее порты 22 и 80 открыты. Даже пробовал включать.
Я не уверен, что еще попробовать. Помощь!
РЕДАКТИРОВАТЬ
Я создал простой тестовый файл. Когда я запускаю это через терминал, это работает, но когда я делаю это через браузер, это не так.
РЕДАКТИРОВАТЬ 2
Я установил Apache2 вместо nginx, теперь все работает.
@IanDrake Я копирую и вставляю строку DSN из моих файлов сценариев в Yii Framework, а также в пустой файл test.php.






Я думаю, вам нужно попробовать просто с каким-нибудь "Hello world". Если это не поможет, введите в терминале:
sudo apt-get install php-mysql
И перезапустите сервер nginx с помощью:
sudo killall nginx && /usr/local/nginx/sbin/nginx
У меня есть программа hello world из трех строк, и я использую сервер nginx/sql.
Можете ли вы дважды проверить, совпадает ли ваша строка DSN как в сценариях заданий cron, так и в веб-приложении? DSN — это первый аргумент конструктора PDO: php.net/manual/en/…. У вас может быть это в вашей конфигурации Yii: yiiframework.com/doc/guide/2.0/ru/…