Ubuntu / SQL Server - PHP-скрипт работает в терминале, но не в веб-приложении

У меня есть комбинация 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, теперь все работает.

Можете ли вы дважды проверить, совпадает ли ваша строка DSN как в сценариях заданий cron, так и в веб-приложении? DSN — это первый аргумент конструктора PDO: php.net/manual/en/…. У вас может быть это в вашей конфигурации Yii: yiiframework.com/doc/guide/2.0/ru/…

Ian Drake 29.03.2019 18:38

@IanDrake Я копирую и вставляю строку DSN из моих файлов сценариев в Yii Framework, а также в пустой файл test.php.

Shahid Thaika 29.03.2019 18:40
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
91
1

Ответы 1

Я думаю, вам нужно попробовать просто с каким-нибудь "Hello world". Если это не поможет, введите в терминале:

sudo apt-get install php-mysql

И перезапустите сервер nginx с помощью:

sudo killall nginx && /usr/local/nginx/sbin/nginx

У меня есть программа hello world из трех строк, и я использую сервер nginx/sql.

Shahid Thaika 29.03.2019 18:27

Другие вопросы по теме