Запуск 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.
Я понятия не имею, почему это не работает, и это похоже на безвыигрышную ситуацию. У кого-нибудь есть идеи, как заставить все это работать нормально?
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ошибках в своих журналах.
Имел те же ошибки, но вместо копирования файлов добавил папку php в системный путь и пересмотрел сервер.

Comments