Форумы портала PHP.SU » Серверное администрирование » Apache и другие веб-серверы » Unable To Load Dynamic Libruary, Call to Undefined function

Страниц (1): [1]
 

1. Champion - 08 Сентября, 2009 - 11:28:55 - перейти к сообщению
Очень часто возникает такая проблема. Причем имногда эта проблемка даже прям удивительной может показаться, но оказывается, что всё закономерно.
Может быть, кто еще столкнется. Описание.
- Не работают функции mysql_connect и компания. Ну на их месте могут, разумеется, оказаться и любые другие функции, требующие дополнительных библиотек. Пишет, что функция неизвестна. Ну это мы знаем: идем в php.ini, раскомментирует extension=php_mysql.dll, проверяем extension_dir, там всё нормально.
Но оказалось, что это не всё. Симптомы остались.
- Залазим в логи Апача, а там
CODE (text):
скопировать код в буфер обмена
  1. PHP Warning:  PHP Startup: Unable to load dynamic library 'C:\\Program Files\\Apache Software Foundation\\Apache2.2\\PHP\\ext\\php_mysql.dll' - \xcd\xe5 \xed\xe0\xe9\xe4\xe5\xed \xf3\xea\xe0\xe7\xe0\xed\xed\xfb\xe9 \xec\xee\xe4\xf3\xeb\xfc.\r\n in Unknown on line 0
По-русски - Не найден указанный модуль.
Убеждаемся, что модуль есть и именно в указанной директории.

Решение.
Если всё так, то не найден на самом деле не сам модуль, а одна из зависимостей. Штука в том, что он ссылается еще на кучу библиотек и не может найти какую-то из них. Надо понять, какую. Узнать зависимости можно в Windows, например, утилитой DEPENDS[dot]EXE. Открываем нашу дллку этой утилитой и смотрим. Там показано, на какие библиотеки ссылается наша.
Если вы видете рядом с именем библиотеки желтый вопросительный знак, значит этой библиотеки нету. А она нужна.
Во-первых, поиском поищите ее на своем копмьтере. Если она нашлась, то либо нужно скопировать ее в одну из директорий, указанных в переменной %PATH%, либо дописать в эту переменную недостающую директорию.
Если она не нашлась, то нужно раздобыть ее каким-либо другим способом и скопировать в одну из директорий %path%.
Еще библиотека может подсвечивается красным. Это значит, что она есть, но в ней нет одной из функций. Какой функции нет, можно узнать глядя на список функций. Там есть красненькие и зелененькие. Что означают эти цвета - догадайтесь сами. Если вы почувствовали такой симптом, то значит, что библиотека не той версии. Ищите другую. Версию можно увидеть в окне Модули в depends.exe.

Перезапускаем Апач. Возможны два случая.
1 - Всё работает. Тогда надо обрадоваться и скушать пирожок.
2 - Проблема осталась. Тогда пирожок есть рано, но можно съесть пока что-нибудь еще, потому что минутки три мы еще будем голодать.
Создаем файлик <?php phpinfo() ?> , открываем браузер, пишем его в адресной строке, переходим. Находим блок Apache Environment. Там есть переменная PATH. Видимо, она отличается от системной.
Тогда все необходимые библиотеки и зависимости нужно переместить в любой каталог, присутствующий в этом PATH.
3. Еще возможно, что версия скачанной библиотеки все же не та, теперь это будет написано в логе апача и указано различие версий. Тогда надо найти нужную версию.

Ну вот и всё.
2. Petro - 19 Апреля, 2010 - 17:16:29 - перейти к сообщению
Все сделал как написано выше, но все равно выводит вот такую строчку

Warning: pg_connect() [function.pg-connect]: Unable to connect to PostgreSQL server: FATAL: password authentication failed for user "nick" in C:\www\index.php on line 4
>

(Добавление)
Понял что не так. Сначала нужно создать базу данных а потом устанавливать соединение с ней. Теперь другая проблема, не могу создать ту самую базу данных ((( но это уже другая история.
3. LIME - 27 Ноября, 2010 - 21:04:21 - перейти к сообщению
нет не помогло ((
и пути все прописаны и зависимости в порядке а проблемка осталась ((
помогите кто-нибуть что за колдовство((
4. sapper - 16 Ноября, 2011 - 22:38:27 - перейти к сообщению
Champion пишет:
Очень часто возникает такая проблема. Причем имногда эта проблемка даже ...................


Сделал всё как сказано, действительно не нашло две библиотеки "php5ts.dll" и "ieshims.dll" php5ts нашёл в папке с самой php накидал его везде где только можно, почти во все папки из PACH, но результат тот же "не удаётся найти файл" хотя двойной клик по ней открывает эту библиотеку, но с ошибкой:

"Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module.
Error: Modules with different CPU types were found.
Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module."
.
А некоторые библиотеки, тот же gd2 нормально видит его, без всяких ошибок.

Что качается ieshims, его нашло 3 разных файла, в IE х86 и IEх64 и ещё где-то, не один из них не подцепился...

Как я указывал на другой ветки связка
apache 2.2.19 + PHP 5.3.8 + PostgreSQL 9.1.1(x64) + win(64) судя по ошибке проблема именно из-за х64 версией.
5. DeepVarvar - 16 Ноября, 2011 - 22:44:20 - перейти к сообщению
Так, так... Не знаю что у вас за система, но у меня есть полный со всеми либами и экстами архив под 32-битку: http://www[dot]deepserver[dot]ru/wamp/
6. sapper - 17 Ноября, 2011 - 23:51:50 - перейти к сообщению
Ничего не выходило, пошёл от обратного: установил postgresql на другом ПК и при настройке поставил галочку пхп+апаче и установщик постгрика установил и их... Версии пхп и апача те же, последние и всё работает. Полный бред, действительно танцы с бубном. Буду по чуть чуть "воровать" файлы, и смотреть на каком косяк...

 

Powered by ExBB FM 1.0 RC1