Запуск PHP: не удается загрузить динамическую библиотеку, Windows, Apache 2.2, php 5.2.11



Это становится очень неприятной проблемой. Я пытаюсь сделать чистую установку apache 2.2 и PHP 5.2.11. Все вроде бы настроено правильно, но модули php не запускаются...



PHP Warning:  PHP Startup: Unable to load dynamic library '.;C:/Program Files (x86)/Apache Software Foundation/Apache2.2/php/ext/php_mcrypt.dll' - The specified module could not be found.rn in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '.;C:/Program Files (x86)/Apache Software Foundation/Apache2.2/php/ext/php_mysql.dll' - The specified module could not be found.rn in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '.;C:/Program Files (x86)/Apache Software Foundation/Apache2.2/php/ext/php_openssl.dll' - The specified module could not be found.rn in Unknown on line 0


В php.ini



include_path = ".;C:Program Files (x86)Apache Software FoundationApache2.2php"
extension_dir = ".;C:/Program Files (x86)/Apache Software Foundation/Apache2.2/php/ext/"


Все файлы находятся там... То.dll файлы, такие как ssleay32.dll, libmcrypt.dll, libmysql.библиотеке DLL libeay32.dll все установлены на...



Файлы C:/Program (для x86)/Apache и программного обеспечения/apache2 не.2/РНР/



Я также включил их в C:WindowsSystem32



И даже добавил: C:/Program файлы (x86) / Apache Software Foundation / Apache2. 2 / php / по пути к windows.



Я понятия не имею, почему это не работает, и это похоже на безвыигрышную ситуацию. У кого-нибудь есть идеи, как заставить все это работать нормально?
1575   4  

4 ответов:

Попробуйте это:

extension_dir = "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/php/ext/"

Не начиная с .;

Только для моего будущего "я", если не для кого-то еще. Это с PHP 5.2.13, работающим в Windows на IIS 8.

Я получил следующую ошибку:

Предупреждение PHP: запуск PHP: не удается загрузить динамическую библиотеку 'C:\Program файлы (x86)\PHP\ext\php_openssl.dll' - указанный модуль не найден.

Из phpinfo() загруженного php.ini-файл был C:\Program Files (x86)\PHP\php.ini.

Каталог расширений:

extension_dir ="C:\Program Files (x86)\PHP\ext"

Это были последние две строки из php.ini файл:

[PHP_SQLSRV]
extension=php_sqlsrv_52_nts_vc6.dll
[PHP_OPENSSL]
extension=php_openssl.dll

Файлы php_openssl.dll и php_sqlsrv_52_nts_vc6.dll находятся в каталоге ext. php_openssl.dll не поврежден (это тот же размер файла, что и на другой машине, которая работает).

PHP найдет библиотеку dll sqlsrv, но не библиотеку dll openssl. Понятия не имею почему. Никакие объемы перезапуска IIS ничего не сделали.

Решение, пока я не знаю лучше, было установить openssl.расширение dll с помощью установщика Windows PHP. Вы можете повторно запустить установщик и выбрать "Изменить", и это позволит вам добавить или удалить библиотеки. Я не вижу никакой разницы в файле или php.теперь ini-файл, но теперь файл загружается.

Я подозреваю, что на самом деле моя проблема была похожа на этот комментарий об установке OpenSSL на Windows :

В этот момент при запуске Apache он попытается загрузить php_openssl.dll, но если ваша настройка похожа на мою, вы увидите ошибку. Я предпочитаю запускать Apache вручную, и в диалоговом окне появляется ошибка: "порядковый номер 4114 не может быть расположен в динамической библиотеки LIBEAY32.файл DLL". (Я не уверен, что вы получите это сообщение, если начнете Apache как сервис). Журнал Apache также содержит сообщение об ошибке, говорящее, что php_openssl.dll не может быть загружена, хотя это сообщение не содержит имени libeay32.файл DLL. Добро пожаловать в DLL ад.

Libeay32.dll входит в картину, потому что php_openssl.dll зависит от него (а также от ssleay32.файл DLL). Я думаю, что происходит то, что Apache сначала пытается загрузить php_openssl.файл DLL программно из пути, указанного ключом extension_dir. Но тогда загрузка так называемых зависимых библиотек DLL остается на механизме Windows по умолчанию. Если Windows находит несовместимую версию зависимой библиотеки DLL, вы получаете сообщение об ошибке.

Я заметил ошибки около ssleay32.dll при попытке запустить php -i из командной строки. Я просто предположил, что его нет в окружающей среде. IIS не упоминал о каких-либо ssleay32.dll ошибках в своих журналах.

Вы просто раскомментируете extension_dir в php.ini

Введите описание изображения здесь

Имел те же ошибки, но вместо копирования файлов добавил папку php в системный путь и пересмотрел сервер.

Comments

    Ничего не найдено.