Установка cURL на Denwer. Пересылка Web-файлов из командной строки Php curl установка

  • 20.06.2020

установить & config apache получить пакеты PHP5 и получить пакеты CURL.

Я запускаю apache и запускаю скрипт PHP. без проблем. но когда я запускаю php-скрипт с завитком, он терпит неудачу.

Он возвращает: **Call to undefined function curl_version() in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\testing.php on line 5**

В которой строка 5 является вызываемой curl_init()

Я вывожу php -i, чтобы узнать, вызывается ли правильный путь к расширению. Он правильно установлен:

Extension_dir => C:\PHP\ext => C:\PHP\ext cURL support => enabled cURL Information => libcurl/7.16.0 OpenSSL/0.9.8g zlib/1.2.3

Я даже попытался запустить curl_version() но все же возникает такая же ошибка.
Похоже, что PHP не может найти расширение CURL, но php.ini (а также php -i) показывает, что он установлен.

Есть идеи? :)

P.S> System I m running on: Windows XP Apache 2.2 PHP 5.2.6 CURL Win32 Generic Binaries: Win32 2000/XP metalink 7.19.0 binary SSL enabled Daniel Stenberg 249 KB

Я этого не понял:

Win32 2000/XP 7.19.0 libcurl SSL enabled Günter Knauf 1.55 MB Should I get this one instead?

Причина, по которой мне нужно использовать CURL, - это требование моего проекта. Поэтому я могу только придерживаться этого. XAMPP ... как он работает в Windows? Есть ли сайт, который вы можете порекомендовать? Благодарю.

Я пробовал много вещей при установке cURL и проверял все, но все же, я все еще обнимаюсь вокруг проблемы и понятия не имею, что происходит.

Сервер Apache использует правильный PHP.ini. и PHP.ini имеет правильный extension_dir и extension = php_curl.dll Я понятия не имею, почему это не работает. даже я следую за каждым шагом для его настройки. :(


2017-10-08 01:33

Ответы:

Вероятно, вы ошибаетесь, что PHP.ini вам нужно изменить. сначала добавьте PHPinfo (); на info.php и запустите его из своего браузера.

Запишите путь каталога PHP ini, который вы видите в списке переменных сейчас! Вы, вероятно, заметите, что он отличается от вашего INI-файла PHP-CLI.

Включить расширение

Вы закончили:-)


2017-10-08 06:32

Для установки завитка выполните следующие действия:

    открыто https://curl.haxx.se/dlwiz?type=bin в браузере.

    Выберите операционную систему в раскрывающемся списке: либо Windows / Win32, либо Win 64. Нажмите «Выбрать»!

    Для Win 32 выберите, будете ли вы использовать завиток в командной строке Windows (Generic) или на терминале Cygwin (cygwin). Для Win 64 выберите, будете ли вы использовать завиток в командной строке Windows (Generic) или MinGW (MinGW64). Нажмите «Выбрать»!

    При необходимости выберите свою операционную систему Windows. Конец.

    Нажмите Загрузить для версии с включенным или отключенным SSL.

    Откройте загруженный zip-файл. Извлеките файлы в удобное для поиска место, например C: \ Program Files.

Тестирование завитка

    Откройте терминал командной строки Windows. (В меню «Пуск» выберите «Выполнить», затем введите cmd.)

    Установите путь, чтобы включить каталог, в который вы помещаете curl.exe. Например, если вы поместите его в C: \ Program Files \ curl, вы должны ввести следующую команду: set path =% path%; "c: \ Program Files \ curl"

ПРИМЕЧАНИЕ. Вы также можете напрямую скопировать файл curl.exe любым существующим путем в вашем пути

  1. Тип curl. Появится следующее сообщение: curl: попробуйте "curl -help" или "curl -message" для получения дополнительной информации Это означает, что завиток установлен, и путь правильный.

2018-06-12 20:00

Я использую XAMPP, в котором есть несколько файлов php.ini.

Вы можете найти строку в файлах php.ini: ;extension=php_curl.dll

Пожалуйста, удалите; в начале этой строки. Возможно, вам придется перезапустить сервер Apache.


2018-05-01 15:59

У меня также были проблемы с этим. После того, как все эти шаги сделаны правильно и некоторые исправленные недоразумения (нет extensions_dir, но extension_dir, и нет session.save_path, но session.save_path) ничего не работает.

Наконец, я нашел эту заметку на php.net:

Примечание. Примечание для пользователей Win32: Чтобы включить этот модуль в среде Windows, libeay32.dll и ssleay32.dll должны присутствовать в вашем PATH. Вам не нужно libcurl.dll с сайта cURL.

Поэтому я скопировал ssleay32.dll, libeay32.dll & php_curl.dll От / PHP до Windows / system32 и заменил уже существующие файлы (я заметил, что были старые версии ssleay32.dll и libeay32.dll). После этого я нашел раздел CURL в php_info (); и, наконец, все работает.


2018-02-08 16:59

Недавно я установил Curl на PHP5 для Windows Vista. я сделал не включите библиотеку CURL, когда я изначально установил PHP5, поэтому ничего не появилось в Curl в phpinfo () или php.ini.

Я установил CURL, перезапустив установщик PHP5 (php-5.2.8-win32-installer.msi для меня) и выбрав «Изменить». Затем я добавил компонент CURL. Перезапустите Apache, и CURL должен работать. CURL появится в phpinfo (). Кроме того, вот пример скрипта, который вы можете запустить, чтобы проверить, работает ли он. Он отображает RSS-канал от Google:


2017-12-19 13:49

Примечание. Примечание для пользователей Win32. Чтобы включить этот модуль (cURL) в среде Windows, libeay32.dll и ssleay32.dll должны присутствовать в вашем PATH. Вам не нужно libcurl.dll с сайта cURL.

Эта заметка решила мою проблему. Мысль об обмене. libeay32.dll & ssleay.dll вы найдете в папке установки php.

Те, кто использует cURL, после обновлений на 5.6.1, 5.5.17 столкнулись с тем, что модуль cURL перестал работать. Проблема с тех пор не исчезла. Даже в последней на сегодняшней момент версии PHP 5.6.4 эта проблема сохранилась.

Как узнать, работает ли у вас cURL?

Создайте php файл и скопируйте туда:

Откройте его с сервера. Если на выходе что-то вроде:

Array ( => 468736 => 3 => 3997 => 0 => 7.39.0 => x86_64-pc-win32 => OpenSSL/1.0.1j => 1.2.7.3 => Array ( => dict => file => ftp => ftps => gopher => http => https => imap => imaps => ldap => pop3 => pop3s => rtsp => scp => sftp => smtp => smtps => telnet => tftp))

Значит с cURL всё в порядке, если вместо этого ошибка PHP, значит проблема существует.

Во-первых, конечно же проверьте файл php.ini, найдите там строчку

Extension=php_curl.dll

И убедитесь, что перед ней не стоит точка с запятой.

Если всё так, а cURL не работает, то можно провести ещё один тест, для подтверждения необычности ситуации. Создайте ещё один php файл с содержанием:

Через поиск в браузере найдите cURL, если совпадение всего одно, значит модуль cURL не загружен:

При этом и Apache и PHP работают как обычно.

Решений три:

  1. Способ первый (не кошерный). Если у вас PHP 5.6.*, то возьмите версию PHP 5.6.0, оттуда возьмите старый файл php_curl.dll и замените его вместо вашего нового из версии, например, PHP 5.6.4. Для тех, у кого PHP 5.5.17 и выше, нужно взять этот же файл из PHP 5.5.16 и также его заменить. Проблема здесь одна — найти эти старые версии. Можно, конечно, покавыряться в http://windows.php.net/downloads/snaps/php-5.6 , но лично я там не нашёл того, что мне нужно. Да и само решение какое-то не совсем кошерное.
  2. Способ второй (очень быстрый, но тоже не кошерный). Из каталога PHP скопировать файл libssh2.dll в каталог Apache24bin и перезапустить Apache.
  3. Способ третий (кошерный — кошерные люди аплодируют стоя). Нужно добавить вашу PHP директорию в PATH. Как это сделать очень хорошо расписано в официальной документации .

Проверяем:

Вуаля, секция cURL на месте.

Почему так? Откуда взялась эта проблема? Ответа на этот вопрос нет, хотя уже описан механизм её возникновения.

Проблема связана, вроде, с тем, что 5.6.1 должен был выпущен с обновлённым libcurl 7.38.0. Но это доподлинно не известно, авторы PHP кивают на Apache, мол это там какие-то баги.

Механизм возникновения проблемы: если в системную PATH не включён каталог PHP, то когда служба Apache запускается, она не способна найти новый dll (libssh2.dll), который является зависимостью для php_curl.

Соответствующие баг репорты:

Fatal error: Call to undefined function curl_multi_init() in …

Вообще, проблемы с cURL на PHP были, кажется, если не всегда, то очень часто. В процессе гугления своей проблемы, я натыкался на темы, некоторым из которых было больше чем дюжина лет.

Кроме этого, гугление дало ещё несколько выводов:

В Интернете достаточно «инструкций для дибилов», в которых подробно, с картинками, рассказывают как раскомментировать строку extension=php_curl.dll в файле php.ini.

На официальном сайте PHP, в разделе по установке cURL, есть всего два предложения относительно системы Windows:

Для работы с этим модулем в Windows файлы libeay32.dll и ssleay32.dll должны существовать в системной переменной окружения PATH. Вам не требуется файл libcurl.dll с сайта cURL.

Я прочитал их десяток раз. Переключился на английский язык и прочитал ещё несколько раз на английском. С каждым разом всё больше убеждаясь, что эти два предложения написали животные, или кто-то просто попрыгал попой на клавиатуре — я не понимаю их смысла.

Ещё есть несколько каких-то сумасшедших советов и инструкций (некоторые я успел даже опробовать).

На сайте баг репортов ПХП я уже вплотную подобрался к разгадке, что нужно в системную переменную PATH включить каталог с PHP.

В общем, для тех, у кого проблема с cURL и кому нужно «в системную переменную PATH включить каталог с PHP», перейдите к уже названной выше инструкции http://php.net/manual/ru/faq.installation.php#faq.installation.addtopath . Там всё просто, а, главное, человеческим языком написано, что нужно сделать.

Is a free and open source data transfer tool used for transfer of data to and from a server using the following supported protocols: IMAP, IMAPS, POP, POP3, POP3S, DICT, FILE HTTP, HTTPS, SMB, SMBS, SMTP, SMTPS, FTP, FTPS, TELNET, RTSP, RMTP and TFTP.

During its normal operation, it displays a meter-like progress bar indicating parameters such as data transfer speed, amount of data transferred, and estimated time left. The speed is indicated in bytes per second. Let"s see how we can install curl and php-curl in various Linux distributions.

Ubuntu 18.04, 17.10 and Debian 9.3

Login as root and update your Ubuntu system first

Apt-get update

Apt-get install curl

Install php-curl

Apt-get install php-curl

Apt-get install php5.6-curl

Apt-get install php5.5-curl

Verify curl is installed and check its version

From source

Visit curl"s website and download the latest curl version by copying the link and using wget command

Uncompress the tarball file using the tar command below

Cd curl-7.57.0

You"ll require the C compiler to build the source code. Install the C compiler as shown below.

Apt-get install build-essential

Run the commands below in succession to compile the source code

Centos 7

Login as root and run

Yum install curl

Installing php-curl

Yum install php-curl

From source

Just like we did in Ubuntu 17.10, navigate to curl"s website and download the curl tarball.

Wget https://curl.haxx.se/download/curl-7.57.0.tar.gz

Uncompress the tarball

Tax -xvf curl-7.57.0.tar.gz

Navigate to the uncompressed folder

Cd curl-7.57.0

Centos 7 comes already installed with a C compiler. Run the commands below to compile the source code

./configure make make install

Verify installation of curl

Curl --verison

Fedora 27

NOTE Fedora 27 comes pre-installed with curl.

To install php-curl simply log in as root and run

Dnf -y install php-curl

Verify installation of curl

Curl --verison

Arch 2017 Linux

First, log in as root and update the system

Pacman -Sy

Pacman -S curl

Verify whether curl in installed

Pacman -Qi curl

Alpine Linux 3.7

Run apk add curl

Apk add curl

Verify installation of Curl

Apk search curl

Curl is the backbone of internet data transfer for thousands of software applications using a myriad of protocols. Being free and open source has enabled many contributors to work on the curl project and continually come up with newer and improved versions.

Jamie Arthur 3:17 am

About Jamie Arthur

James is a passionate Linux and Windows Systems Administrator with 4 years of experience in Linux, databases and Front-End development. He loves doing research on different Linux distributions and experimenting with installation and configuration of different services and features. His hobbies include swimming, reading novels and playing video games.