Включить CURL на PHP7 windows10 64-битный Apache 2.4

Я использую Windows10 64-битный Apache 2.4.25 (Win64) PHP 7.1.0-Win32-VC14-x64

когда я пытаюсь вызвать функцию curl_init(), я получаю сообщение об ошибке "Вызов неопределенной функции curl_init()"

  • копирование ssleay32.dll и libeay32.dll и php7ts.dll в папку apache/bin
  • правильная установка пути для включения вышеуказанных файлов "C:/PHP;"

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

8 ответов

Решение

Вот шаги от получения PHP до включения cURL:

  1. Скачать PHP (эти шаги проверены на 7.1)
  2. Добавить папку PHP в переменную окружения PATH
  3. Обновите файл php.ini, указав абсолютный путь к каталогу расширений и раскомментируйте расширения php_curl.dll и php_openssl.dll.
  4. Обновите httpd.conf (файл конфигурации Apache), чтобы загрузить модуль php7apache2_4.dll в папку PHP и установить PHPIniDir в каталог PHP
  5. Скопируйте libeay32.dll libssh2.dll и ssleay32.dll в apache/bin (замените существующий)
  6. Перезапустите Apache.

Я исправил это:

1) Редактировать файл php.ini Включить (раскомментировать) расширения php_curl.dll и php_openssl.dll

2) перейти к c:/php7/

Скопируйте libssh2.dll в папку c:/apache24/bin.

3) тестирование: curl_test.php

<?php

// Script to test if the CURL extension is installed on this server

 // Define function to test
    function _is_curl_installed() {
if  (in_array  ('curl', get_loaded_extensions())) {
    return true;
}
else {
    return false;
}
}

// Ouput text to user based on test
 if (_is_curl_installed()) {
    echo "cURL is <span style=\"color:blue\">installed</span> on this server";
  } else {
  echo "cURL is NOT <span style=\"color:red\">installed</span> on this server";
}
?>

В PHP 7.2.2 Windows 10 Apache 2.4 Через некоторое время поиска ответов, почему библиотека cURL не загружается, я просто скопировал libssh2.dll из \php в \Apache24\bin и все стало работать нормально

У меня была такая же проблема с рабочим столом Acquia Dev Desktop, копирование libcrypto-1_1-x64.dll и libssl-1_1-x64.dll из папки PHP7.3 в папку Apache/bin решило проблему для меня.

"Начиная с версии 1.1.0 OpenSSL изменил свои имена библиотек! Libeay32.dll теперь называется libcrypto-.dll (например, libcrypto-1_1-x64.dll для OpenSSL 1.1.x в 64-битных Windows) ssleay32.dll теперь libssl-.dll (например, libssl-1_1-x64.dll для OpenSSL 1.1.x в 64-битных окнах) "

  • epos_jk

См. https://www.php.net/manual/en/curl.installation.php#121921.

Потратив бесчисленные часы или даже дни на опробование всех опубликованных решений на stackoverflow и в других местах, единственное, что сработало для меня в 2022 году, было следующее решение (взято из этого комментария к руководству по php cURL )

Попробуйте добавить эти строки в конфигурацию apache (httpd.conf):

      # manually load SSL libraries for cURL
LoadFile "(path\to\php)\libssh2.dll" 
LoadFile "(path\to\php)\libcrypto-1_1-x64.dll" 
LoadFile "(path\to\php)\libssl-1_1-x64.dll"

и перезапустите apache (не забудьте использовать имя папки php);

Не знаю, имеет ли это значение, но я на Windows 7, использую Apache 2.4 и PHP 7.4. В моей системе не установлен сервер WAMP/XAMP. Вместо этого я загрузил ZIP-версии и запускаю их вручную с моего локального несистемного диска всякий раз, когда мне нужно использовать localhost.

Кроме того, после того, как это наконец заработало, я удалил libeay32.dll, ssleay32.dll из C:/Windows/System32 и из Apache/bin.

Это спасет мою жизнь (из https://www.php.net/manual/en/curl.installation.php)

Обновление до php 7.1.6 на Apache 2.4 32-битная версия Windows 7 x64

эта реализация curl работает:

  1. C: / (путь к папке php)/php.ini включить расширение = php_curl.dll

libeay32.dll, ssleay32.dll, libssh2.dll находят прямо в папке php7

  1. добавьте это в Apache/conf/httpd.conf

    загрузить curl и открыть библиотеки ssl LoadFile "C:/(путь к папке php)/libeay32.dll" LoadFile "C:/(путь к папке php) /ssleay32.dll"

LoadFile "C:/(путь к папке php)/libssh2.dll"

Если вы не найдете некоторые из этих библиотек DLL, попробуйте загрузить не-TS версию fo php и скопировать их из этой папки.

Вот что сработало для меня...

Env Info

  • Сервер WAMP версии 3.1.9
  • Apache 2.4.39
  • PHP 7.2.18

Шаг 1

Из загрузок PHP я получил VC15 x64 Thread Safe (2019-May-01 10:48:48) https://windows.php.net/download

Шаг 2

Извлек файл zip и скопировал /ext/php_curl.dll в C:\wamp64\bin\php\php7.2.18\ext каталог (перезаписывая)

Шаг 3

Перезапустил все сервисы

СДЕЛАННЫЙ

Я скопировал из основной папки php в папку bin apache24 следующую dll

      libcrypto-1_1-x64.dll
libssl-1_1-x64.dll
libssh2.dll

и это сработало как шарм

и перезапустите сервер Apache, у меня Windows 10, а моя версия PHP — php 8.0.28 – apache 2.4.57-win64.

Другие вопросы по тегам