Невозможно загрузить драйвер pdo на Windows Server 2016 - PullRequest
0 голосов
/ 05 июля 2018

Я пытаюсь загрузить драйвер pdo для базы данных Firebird на Windows Server 2016 (64 бита).

Конфигурация следующая:

  • Firebird успешно установлен в 32 бита.
  • Apache 2.4 успешно установлен (двоичный файл Apachelounge, 32 бита).
  • Правильно настроена конфигурация Apache (установлена ​​в C: / Apache24)
  • PHP 32 бита успешно установлен (в C: / PHP) как модуль с mod_php (обработчик apache 2.0).

В качестве доказательства: Результат phpinfo

Я могу выполнить файл PHP. Теперь я хочу установить драйвер PDO, чтобы иметь простой способ подключения к базе данных Firebird.

Я следовал процедуре, найденной в Интернете (раскомментируйте extension=php_pdo_firebird.dll в php.in и добавьте fb.client.dll в C/apache24/bin и c/php) и проверил, правильно ли установлен PDO с помощью этой команды:

php -m|findstr -i pdo_

Что показывает мне: PDO_Firebird

Но когда я вызываю функцию phpinfo в файле test.php, это не показывает, что какой-либо драйвер PDO был загружен. Там написано:

PDO drivers : no values.

, что странно, потому что для PHP драйвер есть. Поэтому после некоторых исследований в Интернете я попробовал следующие вещи, которые не работали:

  • Добавление C/PHP и C:/Apche24/bin в путь
  • Копирование fbclient.dll в C:/Apache/bin, C:/PHP и даже в C:/PHP/ext
  • В php.ini раскомментировать строку "extension_dir = "ext""
  • Для той же строки изменяется значение от "ext" до "C:/PHP/ext"
  • Перезапуск сервера после всего этого

При попытке подключиться к базе данных firedbird с помощью php-файла я получаю сообщение об ошибке:

Неустранимая ошибка: Uncaught PDOException: не удалось найти драйвер в C: \ Apache24 \ htdocs \ test3.php: 10 Трассировка стека: # 0 C: \ Apache24 \ htdocs \ test3.php (10): конструкция PDO -> __ ('firebird: dbname ...', 'SYSDBA', 'masterkey', Array) # 1 {main} брошено в C: \ Apache24 \ htdocs \ test3.php в строке 10

Конечно, я не мог использовать драйвер PDO и использовать расширение FB / IB, но я не хочу.

Любая помощь или совет приветствуются.

Для fb.client.dll это была просто ошибка, на самом деле имя файла - fbclient.dll.

Для php_interbase.dll я получил его в папке php / ext. Я также попытался добавить расширение = php_interbase.dll в файл php.ini, теперь, когда я печатаю в cmd: php -m | findstr -i pdo_ Я получил следующие вещи: - PDO - PDO_Firebird

Но все же с помощью функции phpinfo () я получаю «нет значения» для драйверов PDO даже после перезапуска Apache.

php --ini показать это: Файл конфигурации (php.ini) Путь: C: \ Windows Загруженный файл конфигурации: C: \ PHP \ php.ini Сканирование дополнительных файлов .ini в: (нет) Проанализированы дополнительные файлы .ini: (нет)

И путь к php.ini, который я редактировал, - C: \ PHP \ php.ini

1 Ответ

0 голосов
/ 06 июля 2018

Решено! Парни будут смеяться надо мной. Я искал проблему повсюду, но на самом деле проблема была настолько простой, что я ее не видел. В httpd.conf, добавляя PHPIniDir "c: / php" в конец файла, я фактически добавил PHPIniDir "c / php". Какой позор! Но в конце концов поймал это. Спасибо за вашу помощь.

...