2014-01-19 2 views
0

Расширение, которое я пишу, является оберткой для конкретной библиотеки. В Linux мое расширение работает отлично с помощью cli как apache, но в Windows он работает только в cli. Apache дает мне ошибку:Расширение PHP не работает с Apache в Windows

PHP Warning: PHP Startup: Unable to load dynamic library 'C:\php\eps_api.dll' - The specified module could not be found.\r\n in Unknown on line 0

Я уверен, что указанная DLL существует.

Когда я компилирую простое расширение без каких-либо внешних зависимостей, он работает, но когда я использую функции из внешней dll, он терпит неудачу. Внешняя dll находится в PATH, и я скажу это снова, php-cli работает хорошо.

Затем я попытался использовать функцию LoadLibrary() в RINIT, но также не удалось выполнить ошибку 126 (модуль не найден) в apache и работает в cli.

Мое расширение скомпилировано с помощью MSVC9 и внешней библиотеки с MinGW 4.6.2, и я думаю, что это проблема. .a таблица экспорта преобразуется в .lib с функцией CMake GNUtoMS. Apache версии 2.2.26, Windows XP SP3.

Любые идеи, как заставить его работать? Конфигурации, журналы или техническая информация по вашим запросам.

P.S. Извините за мой плохой английский.

Редактировать: Я написал тестовый скрипт, печатающий переменную PATH, а результат, возвращаемый apache, отличается от результата, указанного в cmd. Итак, вопрос в том, как изменить PATH в apache? Я искал реестр для записей, пытался использовать директиву SetEnv в httpd.conf, но без результата.

Редактировать 2: Проблема решена с перезагрузкой виртуальной машины и обновлением системного пути.

+0

Вы включили их в файл 'php.ini'? –

+0

@ Victor, Да, я сделал. Расширение внешних зависимостей работает. – Lev

+0

Может быть, вы справитесь с файлом расширения там, где размещены библиотеки? И перезапустите сервер? –

ответ

0

В Windows это конкретное сообщение об ошибке может означать, что зависимость указанного модуля не найдена. Захватите «depend.exe» и убедитесь, что PATH Apache имеет все необходимые транзитивные зависимости.

+0

Является ли путь Apache другим, чем системным? Как его настроить? – Lev

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