- How to Install curl and php-curl on Linux
- Ubuntu 18.04, 17.10 and Debian 9.3
- From source
- Centos 7
- From source
- Fedora 27
- Arch 2017 Linux
- Alpine Linux 3.7
- Compiling php with curl, where is curl installed?
- 5 Answers 5
- How do I install PHP cURL on Linux Debian?
- 3 Answers 3
- Not the answer you’re looking for? Browse other questions tagged php linux curl or ask your own question.
- Related
- Hot Network Questions
- Subscribe to RSS
- Kак собрать PHP с опцией —with-curl[=DIR] на ubuntu?
- Как пользоваться curl
- Что такое curl?
- Команда curl
- Как пользоваться curl?
- Загрузка файлов
- Ограничение скорости
- Передача файлов
- Отправка данных POST
- Передача и прием куки
- Передача и анализ заголовков
- Аутентификация curl
- Использование прокси
- Выводы
How to Install curl and php-curl on Linux
Curl 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.
This tutorial explains 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
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
Navigate to the uncompressed folder
You’ll require the C compiler to build the source code. Install the C compiler as shown below.
Run the commands below in succession to compile the source code
Centos 7
Login as root and run
From source
Just like we did in Ubuntu 17.10, navigate to curl’s website and download the curl tarball.
Uncompress the tarball
Navigate to the uncompressed folder
Centos 7 comes already installed with a C compiler. Run the commands below to compile the source code
Verify installation of curl
Fedora 27
NOTE Fedora 27 comes pre-installed with curl.
To install php-curl simply log in as root and run
Verify installation of curl
Arch 2017 Linux
First, log in as root and update the system
Verify whether curl in installed
Alpine Linux 3.7
Run apk add curl
Verify installation of 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.
Источник
Compiling php with curl, where is curl installed?
I need to specify a directory when compiling php with —with-curl=
The curl binary is located at /usr/bin/curl
curl -V gives me
locate curl gives me
removed /usr/share/. and other irrelevant files
UPDATE
Tried —with-curl=/usr/lib64 and —with-curl=/usr/lib although I’m pretty sure it’s 64 bit.
SOLUTION
PHP requires curl-devel
5 Answers 5
None of these will allow you to compile PHP with cURL enabled.
In order to compile with cURL, you need libcurl header files (.h files). They are usually found in /usr/include/curl . They generally are bundled in a separate development package.
Per example, to install libcurl in Ubuntu:
Then you can just do:
If you compile cURL manually, you can specify the path to the files without the lib or include suffix. (e.g.: /usr/local if cURL headers are in /usr/local/include/curl ).
Adding to @netcoder answer above, If you are using Ubuntu 17+, installing libcurl header files is half of the solution. The installation path in ubuntu 17.0+ is different than the installation path in older Ubuntu version. After installing libcurl, you will still get the «cURL not found» error. You need to perform one extra step (as suggested by @minhajul in the OP comment section).
Add a symlink in /usr/include of the cURL installation folder (cURL installation path in Ubuntu 17.0.4 is /usr/include/x86_64-linux-gnu/curl).
My server was running Ubuntu 17.0.4, the commands to enable cURL support were
Then create a link to cURL installation
Try just —with-curl, without specifying a location, and see if it’ll find it by itself.
If you’re going to compile a 64bit version(x86_64) of php use: /usr/lib64/
For architectures (i386 . i686) use /usr/lib/
I recommend compiling php to the same architecture as apache. As you’re using a 64bit linux i asume your apache is also compiled for x86_64.
Источник
How do I install PHP cURL on Linux Debian?
How do I install PHP cURL on Linux Debian? I tried the following code and got the error below
I resolved this issue. My Linux box was unable to browse and resolve hosts names. After adding appropriate roots, the issue was resolved.
3 Answers 3
Type in console as root:
Sorry I missread.
1st, check your DNS config and if you can ping any host at all,
If it does not work, check /etc/resolv.conf or /etc/network/resolv.conf , if not, change your apt-source to a different one.
You should not use Ubuntu sources on Debian and vice versa.
I wrote an article on topis how to [manually install curl on debian linu][1]x.
And restart Apache. If you will have an error during point 6, try to run apt-get install build-essential.
Whatever approach you take, make sure in the end that you have an updated version of curl and libcurl. You can do curl —version and see the versions.
Here’s what I did to get the latest curl version installed in Ubuntu:
- sudo add-apt-repository «deb http://mirrors.kernel.org/ubuntu wily main»
- sudo apt-get update
- sudo apt-get install curl
Not the answer you’re looking for? Browse other questions tagged php linux curl or ask your own question.
Related
Hot Network Questions
Subscribe to RSS
To subscribe to this RSS feed, copy and paste this URL into your RSS reader.
site design / logo © 2021 Stack Exchange Inc; user contributions licensed under cc by-sa. rev 2021.10.8.40416
By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.
Источник
Kак собрать PHP с опцией —with-curl[=DIR] на ubuntu?
Для использования cURL необходимо собрать PHP с опцией —with-curl[=DIR] , где DIR — имя каталога, содержащего подкаталоги lib и include. Каталог include должен содержать подкаталог curl с файлами easy.h и curl.h. В каталоге lib должен быть файл libcurl.a. До PHP 5.5.0 с помощью опции —with-curlwrappers можно было сконфигурировать PHP для использования cURL при работе с обертками URL
$ curl —version
curl 7.58.0 (x86_64-pc-linux-gnu) libcurl/7.58.0 OpenSSL/1.1.1d zlib/1.2.11 libidn2/2.2.0 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3
Release-Date: 2018-01-24
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy PSL
- Вопрос задан более года назад
- 183 просмотра
$ sudo apt-get install libcurl4-openssl-dev
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Уже установлен пакет libcurl4-openssl-dev самой новой версии (7.58.0-2ubuntu3.8pop1).
Следующие пакеты устанавливались автоматически и больше не требуются:
libcurl3-nss liblockfile-bin liblockfile1 linux-headers-5.0.0-36
linux-headers-5.0.0-36-generic linux-image-5.0.0-36-generic
linux-modules-5.0.0-36-generic linux-modules-extra-5.0.0-36-generic
php7.3-dev php7.3-xmlrpc pigz
Для их удаления используйте «sudo apt autoremove».
Обновлено 0 пакетов, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 35 пакетов не обновлено.
Источник
Как пользоваться curl
Нам часто приходится загружать различные файлы из интернета, например, исполняемые файлы программ, файлы скриптов, архивы с исходниками. Но не всегда это нужно делать через браузер. Во многих ситуациях гораздо проще выполнить все действия через терминал. Поскольку таким образом вы можете автоматизировать процесс. С другой стороны, веб-мастерам время от времени приходится тестировать доступность веб-сайтов, проверять отправляемые и получаемые заголовки и многое другое.
Для решения таких задач и задач подобного круга можно воспользоваться утилитой curl. Она позволяет решить намного более широкий круг задач, среди которых даже имитация действий пользователя на сайте. В этой статье мы рассмотрим как пользоваться curl, что это такое и зачем нужна эта программа.
Что такое curl?
На самом деле, curl — это больше чем просто утилита командной строки для Linux или Windows. Это набор библиотек, в которых реализуются базовые возможности работы с URL страницами и передачи файлов. Библиотека поддерживает работу с протоколами: FTP, FTPS, HTTP, HTTPS, TFTP, SCP, SFTP, Telnet, DICT, LDAP, а также POP3, IMAP и SMTP. Она отлично подходит для имитации действий пользователя на страницах и других операций с URL адресами.
Поддержка библиотеки curl была добавлена в множество различных языков программирования и платформ. Утилита curl — это независимая обвертка для этой библиотеки. Именно на этой утилите мы и остановимся в этой статье.
Команда curl
Перед тем как перейти к описанию того как может использоваться команда curl linux, давайте разберем саму утилиту и ее основные опции, которые нам понадобятся. Синтаксис утилиты очень прост:
$ curl опции ссылка
Теперь рассмотрим основные опции:
- -# — отображать простой прогресс-бар во время загрузки;
- -0 — использовать протокол http 1.0;
- -1 — использовать протокол шифрования tlsv1;
- -2 — использовать sslv2;
- -3 — использовать sslv3;
- -4 — использовать ipv4;
- -6 — использовать ipv6;
- -A — указать свой USER_AGENT;
- -b — сохранить Cookie в файл;
- -c — отправить Cookie на сервер из файла;
- -C — продолжить загрузку файла с места разрыва или указанного смещения;
- -m — максимальное время ожидания ответа от сервера;
- -d — отправить данные методом POST;
- -D — сохранить заголовки, возвращенные сервером в файл;
- -e — задать поле Referer-uri, указывает с какого сайта пришел пользователь;
- -E — использовать внешний сертификат SSL;
- -f — не выводить сообщения об ошибках;
- -F — отправить данные в виде формы;
- -G — если эта опция включена, то все данные, указанные в опции -d будут передаваться методом GET;
- -H — передать заголовки на сервер;
- -I — получать только HTTP заголовок, а все содержимое страницы игнорировать;
- -j — прочитать и отправить cookie из файла;
- -J — удалить заголовок из запроса;
- -L — принимать и обрабатывать перенаправления;
- -s — максимальное количество перенаправлений с помощью Location;
- -o — выводить контент страницы в файл;
- -O — сохранять контент в файл с именем страницы или файла на сервере;
- -p — использовать прокси;
- —proto — указать протокол, который нужно использовать;
- -R — сохранять время последнего изменения удаленного файла;
- -s — выводить минимум информации об ошибках;
- -S — выводить сообщения об ошибках;
- -T — загрузить файл на сервер;
- -v — максимально подробный вывод;
- -y — минимальная скорость загрузки;
- -Y — максимальная скорость загрузки;
- -z — скачать файл, только если он был модифицирован позже указанного времени;
- -V — вывести версию.
Это далеко не все параметры curl linux, но здесь перечислено все основное, что вам придется использовать.
Как пользоваться curl?
Мы рассмотрели все, что касается теории работы с утилитой curl, теперь пришло время перейти к практике, и рассмотреть примеры команды curl.
Загрузка файлов
Самая частая задача — это загрузка файлов linux. Скачать файл очень просто. Для этого достаточно передать утилите в параметрах имя файла или html страницы:
Но тут вас ждет одна неожиданность, все содержимое файла будет отправлено на стандартный вывод. Чтобы записать его в какой-либо файл используйте:
curl -o readme.txt https://raw.githubusercontent.com/curl/curl/master/README.md
А если вы хотите, чтобы полученный файл назывался так же, как и файл на сервере, используйте опцию -O:
curl -O https://raw.githubusercontent.com/curl/curl/master/README.md
Если загрузка была неожиданно прервана, вы можете ее возобновить:
curl -# -C — -O https://cdn.kernel.org/pub/linux/kernel/v4.x/testing/linux-4.11-rc7.tar.xz
Если нужно, одной командой можно скачать несколько файлов:
curl -O https://raw.githubusercontent.com/curl/curl/master/README.md -O https://raw.githubusercontent.com/curl/curl/master/README
Еще одна вещь, которая может быть полезной администратору — это загрузка файла, только если он был изменен:
curl -z 21-Dec-17 https://raw.githubusercontent.com/curl/curl/master/README.md -O https://raw.githubusercontent.com/curl/curl/master/README
Данная команда скачает файл, только если он был изменен после 21 декабря 2017.
Ограничение скорости
Вы можете ограничить скорость загрузки до необходимого предела, чтобы не перегружать сеть с помощью опции -Y:
curl —limit-rate 50K -O https://cdn.kernel.org/pub/linux/kernel/v4.x/testing/linux-4.11-rc7.tar.xz
Здесь нужно указать количество килобайт в секунду, которые можно загружать. Также вы можете разорвать соединение если скорости недостаточно, для этого используйте опцию -Y:
curl -Y 100 -O https://raw.githubusercontent.com/curl/curl/master/README.md
Передача файлов
Загрузка файлов, это достаточно просто, но утилита позволяет выполнять и другие действия, например, отправку файлов на ftp сервер. Для этого существует опция -T:
curl -T login.txt ftp://speedtest.tele2.net/upload/
Или проверим отправку файла по HTTP, для этого существует специальный сервис:
В ответе утилита сообщит где вы можете найти загруженный файл.
Отправка данных POST
Вы можете отправлять не только файлы, но и любые данные методом POST. Напомню, что этот метод используется для отправки данных различных форм. Для отправки такого запроса используйте опцию -d. Для тестирования будем пользоваться тем же сервисом:
curl -d «field1=val&fileld2=val1″http://posttestserver.com/post.php
Если вас не устраивает такой вариант отправки, вы можете сделать вид, что отправили форму. Для этого есть опция -F:
curl -F «password=@pass;type=text/plain» http://posttestserver.com/post.php
Здесь мы передаем формой поле password, с типом обычный текст, точно так же вы можете передать несколько параметров.
Передача и прием куки
Куки или Cookie используются сайтами для хранения некой информации на стороне пользователя. Это может быть необходимо, например, для аутентификации. Вы можете принимать и передавать Cookie с помощью curl. Чтобы сохранить полученные Cookie в файл используйте опцию -c:
curl -c cookie.txt http://posttestserver.com/post.php
Затем можно отправить cookie curl обратно:
curl -b cookie.txt http://posttestserver.com/post.php
Передача и анализ заголовков
Не всегда нам обязательно нужно содержимое страницы. Иногда могут быть интересны только заголовки. Чтобы вывести только их есть опция -I:
curl -I https://losst.ru
А опция -H позволяет отправить нужный заголовок или несколько на сервер, например, можно передать заголовок If-Modified-Since чтобы страница возвращалась только если она была изменена:
curl -I —header ‘If-Modified-Since: Mon, 26 Dec 2016 18:13:12 GMT’ https://losst.ru
Аутентификация curl
Если на сервере требуется аутентификация одного из распространенных типов, например, HTTP Basic или FTP, то curl очень просто может справиться с такой задачей. Для указания данных аутентификации просто укажите их через двоеточие в опции -u:
curl -u ftpuser:ftppass -T — ftp://ftp.testserver.com/myfile_1.txt
Точно так же будет выполняться аутентификация на серверах HTTP.
Использование прокси
Если вам нужно использовать прокси сервер для загрузки файлов, то это тоже очень просто. Достаточно задать адрес прокси сервера в опции -x:
curl -x proxysever.test.com:3128 http://google.co.in
Выводы
В этой статье мы рассмотрели как пользоваться curl, зачем нужна эта утилита и основные ее возможности. Несмотря на свою схожесть с wget, они очень сильно отличаются. Команда curl linux предназначена больше для анализа и имитации различных действий на сервере, тогда как wget больше подходит для загрузки файлов и краулинга сайтов.
Источник