Функция curl_init () не работает

Привет, я пытаюсь отправить PHP-запрос внутри запроса POST, думая, что это может быть полезно для меня, и мой код приведен ниже

$sub_req_url = "http://localhost/index1.php"; $ch = curl_init($sub_req_url); $encoded = ''; // include GET as well as POST variables; your needs may vary. foreach($_GET as $name => $value) { $encoded .= urlencode($name).'='.urlencode($value).'&'; } foreach($_POST as $name => $value) { $encoded .= urlencode($name).'='.urlencode($value).'&'; } // chop off last ampersand $encoded = substr($encoded, 0, strlen($encoded)-1); curl_setopt($ch, CURLOPT_POSTFIELDS, $encoded); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_POST, 1); curl_exec($ch); curl_close($ch); 

формируйте файл index.php и index2.php – это другой файл в том же каталоге, и когда я открываю страницу, я получаю следующую ошибку в файле error.log

 [Sat Dec 18 15:24:53 2010] [error] [client ::1] PHP Fatal error: Call to undefined function curl_init() in /var/www/testing1/index.php on line 5 

Что я хочу сделать, так это то, что у меня есть форма резервирования, которая отправляет запрос на отправку, а затем я хочу обрабатывать значения сообщений и отправлять снова почтовый запрос на paypal

    Вам необходимо установить поддержку CURL для php.

    В Ubuntu вы можете установить его через

     sudo apt-get install php5-curl 

    Если вы используете apt-get, вам не нужно будет редактировать какую-либо конфигурацию PHP, но вам нужно будет перезапустить Apache.

     sudo /etc/init.d/apache2 restart 

    Если у вас все еще возникают проблемы, попробуйте использовать phpinfo (), чтобы убедиться, что CURL указан как установленный. (Если это не так, вам может потребоваться открыть другой вопрос, спрашивая, почему ваши пакеты не устанавливаются.)

    В документации PHP CURL есть руководство по установке.

    Для Windows, если кто-то заинтересован, раскомментируйте следующую строку (путем удаления;) из php.ini

     ;extension=php_curl.dll 

    Перезапустите сервер Apache.

    Для Ubuntu: добавьте extension=php_curl.so в php.ini, чтобы включить, если необходимо. Затем sudo service apache2 restart

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

    Отпечаток будет соответствовать всем трем из этих условий:

    1. Неустранимая ошибка при вызове curl_init ()
    2. в php_info вы увидите автора модуля curl (указав, что завиток установлен и доступен)
    3. также в php_info вы не увидите блок конфигурации curl (указывающий, что завиток не был загружен)

    В моем случае, в Xubuntu, мне пришлось установить библиотеки libcurl3 libcurl3-dev. С этой командой все работало:

     sudo apt-get install curl libcurl3 libcurl3-dev php5-curl 

    Я получил его в Ubuntu 16.04, выполнив следующие шаги. Моя версия php была 7.0

    sudo apt-get install php7.0-curl

    sudo service apache2 restart

    Я получил его из этой ссылки, чтобы узнать подробнее

    Чтобы исправить эту ошибку, я сделал:

    1. В файле php.ini раскомментируйте эту строку: extension=php_curl.dll
    2. В файле php.ini раскомментируйте эту строку: extension_dir = "ext"
    3. Я перезапустил NETBEANS, поскольку я использовал встроенный сервер

    Я получил эту ошибку, используя PHP7 / Apache 2.4 на платформе Windows. curl_init работал с CLI, но не с Apache 2.4. Я разрешил его, добавив директивы LoadFile для libeay32.dll и ssleay32.dll:

     LoadFile "C:/path/to/Php7/libeay32.dll" LoadFile "C:/path/to/Php7/ssleay32.dll" LoadFile "C:/path/to/Php7/php7ts.dll" LoadModule php7_module "C:/path/to/Php7/php7apache2_4.dll" 

    (Попытка заставить Curl работать через PHP и Apache в Windows …)

    Я продолжал получать сообщение об ошибке: вызов неопределенной функции curl_init ()

    Я убедился, что разрешил завиток этой строки в файле php.ini: extension = php_curl.dll

    Я убедился, что переменная extension_dir была настроена правильно, например: extension_dir = "ext"

    Я делал все, что говорили на форумах, и завивка не появлялась в моем вызове phpinfo (), и я продолжал получать ту же самую ошибку сверху.

    Наконец, я узнал, что Apache по умолчанию ищет php.ini в папке C: \ Windows. Я изменил php.ini в своей папке установки PHP. Как только я скопировал свой php.ini в C: \ Windows, все сработало.

    Взял меня навсегда, чтобы понять это, поэтому подумал, что отправлю, если это поможет кому-то другому.

    Правильный ответ RusAlex в том, что для Apache вам нужно установить и включить завиток и перезапустить службу apache:

     sudo apt-get install php5-curl sudo service apache2 restart 

    На моем сервере Ubuntu с nginx и php5-fpm я, однако, столкнулся с следующей проблемой. Мне пришлось перезапустить nginx и php5-fpm так:

     sudo service nginx restart sudo service php5-fpm restart 

    Но у меня были неработающие процессы php5-fpm, которые, по-видимому, были ошибкой в ​​ubuntu https://bugs.launchpad.net/ubuntu/+source/php5/+bug/1242376 Поэтому мне пришлось убить всех простоя php5- fpm, чтобы перезапустить php5-fpm, так что модуль завитка фактически загружен

     sudo kill <Process Id of php5-fpm Process) 

    функция curl_int (); вызвать ошибку сервера, установить sudo apt-get install php5-curl restart apache2 server .. он будет работать как шарм

    Этот ответ предназначен для запроса https:

    Curl не имеет встроенных корневых сертификатов (как это делает большинство современных браузеров). Вам нужно явно указать его на файл cacert.pem:

      curl_setopt($ch, CURLOPT_CAINFO, '/path/to/cert/file/cacert.pem'); 

    Без этого завиток не может проверить сертификат, отправленный обратно через ssl. Этот же файл корневого сертификата может использоваться каждый раз, когда вы используете SSL в curl.

    Вы можете получить файл cacert.pem здесь: http://curl.haxx.se/docs/caextract.html

    Ссылки PHP cURL не работает с HTTPS

    Просто добавив свой ответ в случае, когда в вашей системе установлено несколько версий PhP, и вы уверены, что уже установили пакет php-curl , и все же Apache все еще дает вам ту же ошибку.

    curl_init () не определено, даже если php-curl включен в Php 7.

    просто установите последнюю версию wamp-сервера