Не загружается php_pgsql.dll

untied

Сдвинутый новичок
Не загружается php_pgsql.dll

Упорно не желается загружаться php_pgsql.dll

Рабочая станция: Windows XP, Apache 2.0, PHP 4.4.9, установлен PostgreSQL 8.3.
Apache выдает в логе сообщение:
PHP Warning: Unknown(): Unable to load dynamic library 'C:/PHP4/extensions\\php_pgsql.dll' - \xce\xef\... %1.\r\n in Unknown on line 0
и библиотека, соответственно, не грузится.

Сама dll в папке extensions есть, путь в php.ini прописан верно (так как прочие расширения, напр. php_bz2.dll, успешно подгружаются).
Из командной строки php.exe вначале запускалась с ошибкой (не находила libpq.dll), тогда я добавил в PATH путь C:\PostgreSQL\8.3\bin, и теперь php.exe не ругается.
Но php_pgsql.dll все равно не подгружается. : (
Я уж ее в каталог C:\WINDOWS копировал (по примеру php_mssql.dll), но все глухо.

Что еще попробовать?
 

DiMA

php.spb.ru
Команда форума
в C:\WINDOWS ничего не копируй

зато скопируй все DLL, которые имеют отношение к пхп/апачу/базе в каталог APACHE/BIN (кроме файлов php_*.dll - их не надо)

-~{}~ 08.04.09 14:37:

чтобы узнать из каких мест софт пытается грузить файлы - filemon
 

untied

Сдвинутый новичок
YES! YES! YES! I DID IT!!!

Все оказалось не так просто. Для начала пришлось скачать libpq.dll с php.net, переписал ее в Apache2/bin
Не заработало. Тогда пришлось применить тяжелую артиллерию в виде Dependency Walker и Process Monitor во время загрузки Apache.
По проц-мону все DLL-ки находились, depends тоже показал, что все зависимости соблюдаются.
Обратил в проц-моне, что Апач вначале грузит DLL из своего собственного каталога, а за загрузкой libpq.dll следует загрузка libeay32.dll и ssleay32.dll.
Пришло в голову, что эти две собственные библиотеки Апача не совместимы с libpq.dll. Переименовал их и скопировал libeay32.dll и ssleay32.dll (которые оказались бОльшего размера) из PHP/dlls

И оно загрузилозь... :D
 
Сверху