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.
Краткая инструкция для тех, кто хочет настроить curl php на Windows 8.1 x64. Если curl не настроен на вашем вэб-сервере, то возникает следующая ошибка: Fatal error: Call to undefined function curl_init().
Настройка cURL
Написанное ниже актуально для связки Windows 8.1 x64 , Windows10 x64 + Apache 2.4.12 (win32) + Open SSl 1.0.1m + PHP 5.6.11 (php-5.6.11-Win32-VC11-x86).
- Скачиваем библиотеку cURL http://winampplugins.co.uk/curl . Распаковываем в любую папку. Например, «W:\WebServers\usr\local\curl».
- В файле настроек PHP php.ini необходимо включить расширение extension=php_curl.dll.
- Пункт не обязательный, но во многих источниках его рекомендуют выполнять. У нас работает без выполнения этого пункта. Из папки где установлен PHP скопировать в папку «C:\Windows \system32» следующие библиотеки: libssh2.dll, php_curl.dll (находится в папке ext), ssleay32.dll, libeay32.dll. Дополнительно файл ssleay32.dll необходимо скопировать в «C:\Windows\SysWOW64».
- Добавить в переменные среды в переменную Path пути до папки установки curl.exe и файла php.ini. Например, «W:\WebServers\usr\local\curl;W:\WebServers\usr\local\php5». Очень порадовало то, что в windows10 (1511) появился новый интерфейс редактирования переменных сред. Стало очень удобно редактировать параметры.
Включение поддержки SSL для cURL
- Скачать файл http://curl.haxx.se/ca/cacert.pem в папку, в которой установлена библиотека curl.exe.
- Переименовать скаченный файл в curl-ca-bundle.crt
- Перезагрузить компьютер.
Те, кто использует 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 работают как обычно.
Решений три:
- Способ первый (не кошерный). Если у вас 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 , но лично я там не нашёл того, что мне нужно. Да и само решение какое-то не совсем кошерное.
- Способ второй (очень быстрый, но тоже не кошерный). Из каталога PHP скопировать файл libssh2.dll в каталог Apache24bin и перезапустить Apache.
- Способ третий (кошерный — кошерные люди аплодируют стоя). Нужно добавить вашу 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 . Там всё просто, а, главное, человеческим языком написано, что нужно сделать.