Включить 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:
- Скачать PHP (эти шаги проверены на 7.1)
- Добавить папку PHP в переменную окружения PATH
- Обновите файл php.ini, указав абсолютный путь к каталогу расширений и раскомментируйте расширения php_curl.dll и php_openssl.dll.
- Обновите httpd.conf (файл конфигурации Apache), чтобы загрузить модуль php7apache2_4.dll в папку PHP и установить PHPIniDir в каталог PHP
- Скопируйте libeay32.dll libssh2.dll и ssleay32.dll в apache/bin (замените существующий)
- Перезапустите 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 работает:
- C: / (путь к папке php)/php.ini включить расширение = php_curl.dll
libeay32.dll, ssleay32.dll, libssh2.dll находят прямо в папке php7
- добавьте это в 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.