2013-11-20 2 views
0

Я потратил свой день, пытаясь сделать мой Zend Server на локальном хосте (Windows 8), прочитав файл DB2 в системе i5.Zend server на Windows не загружается php_ibm_db2.dll

Я следовал много гидов и прочитать ответы на подобные вопросы, а теперь:

  • Я IBM Express-C установлена ​​на моей машине
  • Я имею php_ibm_db2.dll в внутр папку \
  • application.ini имеет расширение = php_ibm_db2.dll, указывающее на нужную папку
  • мой путь к переменной окружения имеет [...] C: \ Program Files \ ibm \ gsk8 \ lib64; C: \ Program Files (x86) \ IBM \ gsk8 \ Lib; C: \ PROGRA ~ 1 \ IBM \ SQLLIB \ BIN; C: \ PROGRA ~ 1 \ IBM \ SQLLIB \ FUNCTION; C: \ PROGRA ~ 1 \ IBM \ SQLLIB \ Samples \ РЕПЛ;

Но перезапуск сервера, в журналах, я найти «PHP Warning: PHP Startup: Невозможно загрузить динамическую библиотеку,«C: \ Program Files (x86) \ Zend \ ZendServer \ Lib \ phpext \ php_ibm_db2.dll '"

Даже если это правильный путь к dll.

И сервер не распознает db2_connect() (неопределенную)

Любая идея о том, что происходит? Возможно ли, что проблема с Windows 8 64bit?

ответ

0

Я предполагаю, что DLL скомпилирована для несовместимой версии PHP. Вы можете получить альтернативную сборку расширения здесь: http://sourceforge.net/projects/db2mc/files/IBM_DB2%20PHP%20Driver%20for%20Windows/

Я не вижу сборки для PHP 5.5. Это может означать, что вы не сможете заставить его работать с PHP 5.5 без его компиляции.

Для PHP 5.4 обратите внимание на разницу между ts (threadsafe) и nts (не-потоковыми) установками PHP.

Для более старых выпусков PHP обязательно возьмите что-то, построенное с помощью совместимого компилятора. Вероятно, вам нужен VC9 (Visual C++ 9), который соответствует official PHP download.

+0

Прежде всего, спасибо большое за ответ. Версия версии php - 5.4.21 на Zend Server Версия: 6.2.0 с отключением потока. php -m возвращает мне ibm_db2, но предупреждение при загрузке сервера продолжается, а технология Explorer для IBM v4.2 подтверждает: «Проверка драйвера PHP: модуль IBM_DB2 PHP не найден». Думаю, что я сдаюсь ... :( – mauoftheclouds

+0

Разве это все еще с этим .dll? Http://sourceforge.net/projects/db2mc/files/IBM_DB2%20PHP%20Driver%20for%20Windows/PHP%205.4. _/php_ibm_db2-1.9.5-5.4-NTS-VC9-x86.zip/download – Leons

+0

Нечего делать, это тот, который я сейчас использую (или пытаюсь ...) Должен ли я помещать php_ibm_db2.pdb где-нибудь? – mauoftheclouds

0

Что такое extension_dir, указывающее в application.ini. Похоже, вы указали расширение = и extension_dir тоже имеет какое-то значение. Следовательно, могут быть добавлены 2 пути, которые приводят к ошибке

Не могли бы вы проверить вышеописанное, если это так, и попробовать, исправив путь в extension_dir и просто имя модуля (php_ibm_db2.dll) в расширении.

Благодаря

Praveen

+0

Привет, я нашел объявления extension_dir и расширения в php.ini не в application.ini (моя ошибка). Во всяком случае, они кажутся правильными: extension_dir = "C: \ Program Files (x86) \ Zend \ ZendServer \ Lib \ phpext" расширение = php_ibm_db2.dll и я подтверждаю, что C: \ Program Files (x86) \ Zend \ ZendServer \ lib \ phpext \ php_ibm_db2.dll - это правильный путь. – mauoftheclouds

+0

Hi Следующее, что я хотел бы проверить, учитывая, что php -m правильно загружает dll (позволяет называть его автономным) ... ваши настройки PATH распознаются zend (Apache) ... if соответствующая настройка PATH не видна Apache, тогда, скорее всего, DLL не будет найдена и, следовательно, ошибка.
Подсказка: возможно, вам придется проверить httpd.conf –

+0

Я проверил и обнаружил, что набрав php -m, в разделе [PHP Modules] появляется ibm_db2, но все еще не работает (и не загружается сервером). Если я пытаюсь подключить первую вещь, которую я вижу, это уведомление: "Примечание: использование неопределенной константы DB2_AUTOCOMMIT_ON - предполагается 'DB2_AUTOCOMMIT_ON' в C: \ Program Files (x86) \ Zend \ ZendServer \ data \ libraries \ Zend_Framework_1 \ 1.12. 3 \ library \ Zend \ Db.php on line 270 " Возможно, это помогает ... Благодарим вас за ответ! – mauoftheclouds

Смежные вопросы