curl не работает на Ubuntu 18.04 LTS
Я не могу получить контент из Интернета, используя curl . Я попытался это описать ниже.
Некоторые пакеты не могут быть установлены. Это может означать, что вы запросили невозможную ситуацию, или если вы используете нестабильный дистрибутив, что некоторые необходимые пакеты еще не созданы или не были удалены из Incoming. Следующая информация может помочь разрешить ситуацию:
Следующие пакеты имеют неудовлетворенные зависимости. curl: Зависит от: libcurl4 (= 7.58.0-2ubuntu3), но он не будет установлен E: Невозможно исправить проблемы, у вас есть поврежденные пакеты.
Я проверил наличие задержанных пакетов с обоими sudo apt-mark showheld и dpkg -l | grep ^h в надежде получить список задержанных пакетов, но в любом случае я не получил результатов.
Кроме того, когда я пытаюсь установить libcurl4 его, он почти сломает мою систему, поскольку попытается удалить эти пакеты ниже.
libcurl3 mongodb-enterprise mongodb-enterprise-сервер mongodb-enterprise-tools msodbcsql msodbcsql17 mssql-tools php7.1-curl r-base r-base-core r-base-dev r-base-html r-cran-boot r-cran -класс r-кран-codetools r-кран-иностранный r-кран-getopt r-кран-kernsmooth r-кран-решетка r-cran-littler r-кран-масса r-кран-матрица r-кран-mgcv r-кран -nlme r-cran-nnet r-cran-rpart r-cran-пространственный r-кран-выживание r-рекомендованный slack-desktop virtualbox-5.2
Источник
функция curl init() не работает
Привет я нах PHP Post Request внутри POST Request думаю, что это может быть полезно для меня, и мой код приведен ниже
форма индекса.php файл и index2.php-это еще один файл в том же каталоге, и когда я открываю страницу, Я получаю следующую ошибку в моей ошибке.файл журнала
что я хочу сделать, это у меня есть форма бронирования, которая отправляет запрос post, а затем я хочу обработать значения post и снова отправить запрос post в paypal
15 ответов
вам необходимо установить поддержку CURL для php.
в Ubuntu, вы можете установить его с помощью
Если вы используете apt-get, вам не нужно будет редактировать конфигурацию PHP, но вам нужно будет перезапустить Apache.
Если у вас все еще возникают проблемы, попробуйте использовать phpinfo () чтобы убедиться, что завиток указан как установленный. (Если это не так, вам может потребоваться открыть другой вопрос, спрашивая, почему ваши пакеты не установка.)
существует руководство по установке в PHP CURL документация.
для Windows, если кто-то заинтересован, раскомментируйте следующую строку (удалив 😉 из php.ini
перезапустите сервер apache.
Для Ubuntu: добавить extension=php_curl.so на php.ini для включения, если необходимо. Тогда sudo service apache2 restart
это вообще позаботился автоматически, но есть ситуации-например, в общих средах разработки-где это can необходимо включить вручную.
отпечаток будет соответствовать всем трем из этих условий:
- фатальная ошибка при вызове curl_init ()
- в php_info вы увидите модуль curl автор (с указанием curl установлен и доступен)
- также в php_info вы не увидите блока конфигурации curl (указывающего, что curl не был загружен)
Я получил его работу в ubuntu 16.04, выполнив следующие шаги.Моя версия php была 7.0
sudo apt-get установить php7.0-curl
перезапуск службы sudo apache2
в моем случае, в Xubuntu, мне пришлось установить libcurl3 libcurl3-dev библиотеки. С этой командой все работало:
я получил эту ошибку, используя PHP7 / Apache 2.4 на платформе windows. curl_init работал с CLI, но не с Apache 2.4. Я решил это, добавив LoadFile директивы для libeay32.dll и ssleay32.dll:
исправить эту ошибку, я сделал:
- на раскомментируйте эту строку: extension=php_curl.dll
- на раскомментируйте эту строку: extension_dir = «ext»
- я перезапустил NETBEANS, так как я использовал встроенный сервер
(удалить ; в конце строки)
добавить в Apache/conf/httpd.conf (libeay32.dll, ssleay32.dll, libssh2.dll найти непосредственно в папке php7)
просто добавьте мой ответ для случая, когда в вашей системе установлено несколько версий PHP, и вы уверены, что вы уже установили php-curl пакет, и все же Apache по-прежнему дает вам ту же ошибку.
(попытка заставить Curl работать через PHP и Apache в Windows. )
Я продолжал получать сообщение об ошибке: Вызов неопределенной функции ‘ curl_init ()’
Я убедился, что включил curl с этой строкой в моем php.ini-файл: расширение=php_curl.dll файлы
Я убедился, что переменная extension_dir установлена правильно, как это: extension_dir = «ext»
Я делал все, что все остальные говорили на форумах, и curl не появлялся в моем звонке функцию phpinfo(), и я продолжал получать ту же ошибку сверху.
наконец я узнал, что Apache по умолчанию ищет php.ini в C:\Windows папка. Я менял php.ini в папке установки PHP. Однажды я скопировал свой php.ini в C:\Windows все сработало.
мне потребовалась вечность, чтобы понять это, поэтому я подумал, что напишу, если это поможет кому-то еще.
RusAlex ответ прав в том, что для Apache вы должны установить и включить curl и перезапустить службу apache:
на сервер Ubuntu с nginx и php5-fpm однако я столкнулся со следующей проблемой. Мне пришлось перезапустить nginx и php5-fpm так:
но у меня были нерабочие процессы php5-fpm, которые, по-видимому, являются ошибкой в ubuntu https://bugs.launchpad.net/ubuntu / + источник / php5 / + ошибка / 1242376 Поэтому мне пришлось убить все простаивающие процессы php5-fpm, чтобы перезапустить php5-fpm, чтобы модуль curl был фактически загружен
функция curl_int(); причина ошибки сервера, установка sudo apt-get install php5-curl перезапустите сервер apache2 .. он будет работать как шарм
этот ответ для запроса https:
Curl не имеет встроенных корневых сертификатов (как и большинство современных браузеров). Вам нужно явно указать на cacert.файл pem:
без этого curl не может проверить сертификат, отправленный обратно через ssl. Этот же файл корневого сертификата можно использовать каждый раз, когда вы используете SSL в curl.
на PHP 7 и Windows x64
libeay32.dll, libssh2.dll и ssleay32.dll не должна находиться в apache / bin и должна существовать только в каталоге php и добавлять каталог php в системную переменную среды. Эта работа для меня.
Источник
Установка curl в Ubuntu
Если установочный скрипт выдаёт ошибку: bash: curl: command not found или bash: curl: команда не найдена. Это значит что такой команды нет в вашей системе. Решение простое – установить утилиту curl. Эта утилита для скачивания файлов хоть и не так популярна, как wget, но может предоставить больше возможностей, а также имеет в своём составе библиотеку, которую можно подключить к другим программам.
Мы рассмотрим как установить curl в Ubuntu 20.04. Но инструкция будет актуальна и для более новых или старых версий дистрибутива.
Установка curl в Ubuntu
Представим вполне реальную ситуацию. Вы решили установить приложение с помощью скрипта .sh. Для скачивания скрипта предлагают использовать команду curl, она также может оказаться и в самом скрипте. Однако по умолчанию эта утилита не установлена в Ubuntu 20.04, поэтому при попытке запуска скрипта вы увидите ошибку curl: команда не найдена. А если вы попробуете запустить непосредственно саму утилиту, то сообщение будет выглядеть следующим образом: bash: /usr/bin/curl: Нет такого файла или каталога. Для установки curl следует использовать такие команды:
sudo apt update
sudo apt install curl
После установки скрипт, содержащий команду curl, должен заработать. Для того чтобы узнать версию утилиты выполните:
Эта команда может быть важна, так как программа активно развивается и каждый раз исправляются десятки ошибок и добавляются новые функции. Для того чтобы скачать файл используйте такую команду:
curl -OC — https://releases.ubuntu.com/20.04.2.0/ubuntu-20.04.2.0-desktop-amd64.iso
О других аргументах и способах их использования можете узнать в нашем материале.
Выводы
Утилита curl получила широкое распространение. Она доступна на всех актуальных настольных операционных системах. В Ubuntu 20.04 утилита не предустановлена, но доступна в репозитории и теперь вы знаете как выполняется установка curl Ubuntu.
Описанная ошибка чаще всего встречается только на недавно установленном дистрибутиве. Так как библиотека libcurl используется большим количеством приложений и рано или поздно будет установлена в вашей системе вместе с curl.
Источник
How can I enable cURL for an installed Ubuntu LAMP stack?
I have installed the Ubuntu LAMP stack. But cURL is not enabled, and neither can I can find the extension listed in the INI file. I added it manually, but it didn’t work either.
How should I enable cURL then?
9 Answers 9
After installing libcurl, you should restart the web server with one of the following commands,
You only have to install the php5-curl library. You can do this by running
Click here for more information.
It worked on a fresh Ubuntu 16.04 (Xenial Xerus) LTS, with lamp-server and php7. I tried with php7-curl — it didn’t work and also didn’t work with php5-curl .
For those who are trying to install php-curl on PHP 7, it will result in an error. Actually if you are installing php-curl in PHP 7, the package name should be;
Not php5-curl or php7-curl , just php-curl .
First thing to do: Check for the PHP version your machine is running.
Command Line: php -version
This will show something like this (in my case):
PHP 7.0.8-0ubuntu0.16.04.3 (cli) ( NTS ) Copyright (c) 1997-2016 The PHP Group
If you are using PHP 5.x.x => run command: sudo apt-get install php5-curl
If PHP 7.x.x => run command (in my case): sudo apt-get install php7.0-curl
Enable this extension by running:
And in the file «php.ini» search for keyword «curl» to find this line below and change it from
Next, save your file «php.ini».
Finally, in your command line, restart your server by running: sudo service apache2 restart .
Источник
curl_init() function not working
Hi I tries PHP Post Request inside a POST Request thinking it might be useful to me and my code is given below
form the index.php file and index2.php is another file in the same directory and when i open the page i get the following error in my error.log file
What i want to do is I have a reservation form that send post request and then i want to process post values and send again post request to paypal
23 Answers 23
You need to install CURL support for php.
In Ubuntu you can install it via
If you’re using apt-get then you won’t need to edit any PHP configuration, but you will need to restart your Apache.
If you’re still getting issues, then try and use phpinfo() to make sure that CURL is listed as installed. (If it isn’t, then you may need to open another question, asking why your packages aren’t installing.)
There is an installation manual in the PHP CURL documentation.
$ sudo apt-get install php5_curl Reading package lists. Done Building dependency tree Reading state information. Done E: Couldn’t find package php5_curl
For Windows, if anybody is interested, uncomment the following line (by removing the 😉 from php.ini
Restart apache server.
I got it working in ubuntu 16.04 by following steps.My php version was 7.0
sudo service apache2 restart
For Ubuntu: add extension=php_curl.so to php.ini to enable, if necessary. Then sudo service apache2 restart
this is generally taken care of automatically, but there are situations — eg, in shared development environments — where it can become necessary to re-enable manually.
The thumbprint will match all three of these conditions:
- Fatal Error on curl_init() call
- in php_info, you will see the curl module author (indicating curl is installed and available)
- also in php_info, you will see no curl config block (indicating curl wasn’t loaded)
To fix this bug, I did:
- In php.ini file, uncomment this line: extension=php_curl.dll
- In php.ini file, uncomment this line: extension_dir = «ext»
- I restarted NETBEANS, as I was using Built-in server
In my case, in Xubuntu, I had to install libcurl3 libcurl3-dev libraries. With this command everything worked:
(remove the ; at the end of the line)
Add this to Apache/conf/httpd.conf (libeay32.dll, ssleay32.dll, libssh2.dll find directly in php7 folder)
Just adding my answer for the case where there are multiple versions of PHP installed in your system, and you are sure that you have already installed the php-curl package, and yet Apache is still giving you the same error.
I got this error using PHP7 / Apache 2.4 on a windows platform. curl_init worked from CLI but not with Apache 2.4. I resolved it by adding LoadFile directives for libeay32.dll and ssleay32.dll:
This answer is for https request:
Curl doesn’t have built-in root certificates (like most modern browser do). You need to explicitly point it to a cacert.pem file:
Without this, curl cannot verify the certificate sent back via ssl. This same root certificate file can be used every time you use SSL in curl.
This was after a system upgrade to next version of Ubuntu. All the other answers I found were stale, due to a bad cert apparently on the PPA most of them pointed out, but would probably not have worked anyway. The real issue was disabling the old versions of php, apparently.
Found the solution here:
(Trying to get Curl working via PHP and Apache on Windows. )
I kept getting an error saying: Call to undefined function ‘curl_init()’
I made sure I had enabled curl with this line in my php.ini file: extension=php_curl.dll
I made sure the extension_dir variable was being set properly, like this: extension_dir = «ext»
I was doing everything everyone else said on the forums and curl was not showing up in my call to phpinfo(), and I kept getting that same error from above.
Finally I found out that Apache by default looks for php.ini in the C:\Windows folder. I had been changing php.ini in my PHP installation folder. Once I copied my php.ini into C:\Windows, everything worked.
Took me forever to figure that out, so thought I’d post in case it helps someone else.
Источник