PHP не может загрузить расширение php_curl.dll

Последующее наблюдение за моим сообщением вчера ( включение cURL с PHP )

Проблема в том, что PHP не может загрузить php_curl.dll. Я пробовал несколько шагов, включая uncommenting extension=php_curl.dll , убедившись, что зависимости libeay32.dll и ssleay32.dll eixst в пути, перезагрузка php_curl.dll, замена старого и, наконец, копирование файла в мою систему System32 папка.

Я использую Apache 2.2 и PHP 5.4.14. Я установил оба их отдельных пакета; Я не использую XAMP или WAMP. Я использую 64-разрядную версию Windows 7.

Любая помощь вообще будет оценена по достоинству.

libeay32.dll и ssleay32.dll должны быть доступны для загрузки для загрузки php_curl.dll .

Но копирование их в ServerRoot Apache, \bin\ , Window \System32\ Apache \System32\ , или даже хуже в основной каталог Windows – это плохой взлом и даже не может работать с более новыми версиями PHP.

Правильный способ сделать это – добавить путь PHP к переменной пути Windows. В Control Panel -> System нажмите « Дополнительные параметры системы» и используйте кнопку « Переменные среды» . В разделе « Системные переменные» вы найдете переменную « Path . Отредактируйте его и добавьте: C: \ PHP prepend C:\PHP; к нему – или какой бы ни был путь к вашей папке PHP. Затем полностью остановите Apache и запустите его снова (простого перезапуска может быть недостаточно).

Обновление 2017-05:
Я изменил приведенные выше инструкции, чтобы добавить переменную Path в путь PHP вместо добавления к ней. Это позволяет использовать DLL-файлы в пути PHP, а не другие (устаревшие) версии на других путях системы.

В версии PHP 5.6.x вы должны сделать следующее:

Перейдите в DLL-файлы с папкой Windows\system32 из папки php :

libssh2.dll, ssleay32.dll, libeay32.dll и php_curl.dll из папки php ext

Перейдите в Apache24\bin из папки php :

 libssh2.dll 

Кроме того, не забудьте раскомментировать extension=php_curl.dll в php.ini

WINDOWS Apache 2.4.x + PHP 7.0.x РЕШЕНИЕ ЗДЕСЬ:

Решение. Поместите файлы libeay32.dll, libssh2.dll, ssleay32.dll в каталог dir, указанный в директиве ServerRoot httpd.conf. Эти DLL-файлы можно найти в папке php root.

Причины:

Проблема заключается в том, что php_curl.dll требует доступа к следующим библиотекам при загрузке: libeay32.dll, libssh2.dll, ssleay32.dll, и это не имеет смысла, если вы помещаете их в ./php/ext dir или если вы добавляете расширения php в php root реж.

Конечно, вы можете поместить их в c: \ Windows или в какую-либо глобальную папку, определенную в PATH, но если вы этого не хотите, и хотите, чтобы ваша установка apache + php была переносимой:

Путь, указанный в ServerRoot в httpd.conf, рассматривается как домашний путь для php. Поведение похоже на ситуацию, когда вы включаете файл ./path/to/some.php в ./index.php и домашний путь для файла some.php. / Dir где находится index.php.

В шортах просто поместите эти три библиотеки DLL в каталог, указанный в httpd.conf директиве ServerRoot, и php_curl.dll не перестанет загружаться снова.

Вы загружаете .dll поэтому ваша ОС должна быть окнами.

Сначала проверьте, какой файл php.ini вы используете, запустив phpinfo()

Затем проверьте, где находится ваша папка расширений, проверяя атрибут extension_dir в этом файле.

Затем убедитесь, что php_curl.dll присутствует в этой папке. Если не скопировать его.

Перезапустите apache и проверьте, работает ли он.

Поскольку вы устанавливали пакеты по отдельности, также выполните следующие действия:

Скопируйте файл dll из php_installation_folder/extensions в apache_installation_folder/bin

Убедитесь, что ваши apache SSH dll загружены правильно. На новой установке мне пришлось загрузить и загрузить в мой каталог apache bin следующую DLL «libssh2.dll»,

После загрузки ssl dll cURL смог загрузить без проблем.

Вы можете скачать его по ссылке ниже:

http://windows.php.net/downloads/pecl/releases/ssh2/0.12/

Решение:

 Step1: Uncomment the php_curl.dll from php.ini Step2: Copy the following three files from php installed directory.ie "C:\\php7". libeay32.dll, libssh2.dll, ssleay32.dll Step3: Paste the files under two place httpd.conf's ServerRoot directive. ie "C\Apache24" apache bin directory. ie "C\Apache24\bin" Step4: Restart apache. 

Это все. Я решаю проблему таким образом. Надеюсь, это сработает для вас.

Решение дано здесь. https://abcofcomputing.blogspot.com/2017/06/php7-unable-to-load-phpcurldll.html

Вы проверили, что «extension_dir» в вашем php.ini имеет правильное значение и указывает на правильный каталог?

Я столкнулся с той же проблемой раньше. Я разрешил ее, добавив php-каталог в переменные системной среды Windows — Путь.

Я получил эту ошибку, потому что, по крайней мере, в моей системе, если extension_dir в php.ini установлен на относительный путь, он воспринимается как относящийся к корневому каталогу Apache, поэтому, чтобы заставить его указать на правильный каталог, который мне пришлось используйте абсолютный путь: "C:\Program Files (x86)\PHP\ext" . (Это был PHP 5.5.31 и Apache 2.4.23 в Windows 10, установка extension_dir для ext работала отлично с той же настройкой в ​​Windows 7. Сначала я начал работать, поставив каталог ext в папке Apache с необходимыми DLL , затем выяснил, что происходит.)

Также необходимо правильно установить PATH или убедиться, что DLL, упомянутые выше (libeay32.dll, libssh2.dll и ssleay32.dll), находятся в каталоге bin Apache (или, скорее всего, в одном из упоминаний о других местах). Тот факт, что я получил такое же сообщение об ошибке, что Apache не смог найти lib_curl.dll, так как для него не было возможности найти libssh2.dll, не было легче понять.

Добавьте путь к папке php в System PATH, и все должно работать нормально. Он также исправит некоторые другие расширения, которые сломаны.