PHP 5.6 не будет запускать CURL

2

У меня Ubuntu 12.04 с PHP 5.6.11 и работает Apache/2.4.12. Я установил CURL, выполнив

sudo apt-get install php5-curl 

и перезагрузка: sudo service apache2 restart

В командной строке введите curl -V и получите следующее:

curl 7.22.0 (i686-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtmp rtsp smtp smtps telnet tftp
Features: GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP

и когда я набираю, which curl я получаю следующее: /usr/bin/curl

Поэтому я вполне уверен, что завиток установлен.

Когда я использую phpinfo() на php-странице, вызываемой из веб-браузера, нет никакого блока для завитки и никакой ссылки на завиток.

Мое понимание заключалось в том, что завиток должен работать нормально на основе этого вопроса/ответа без каких-либо изменений конфигурации, что явно не так.

Может ли кто-нибудь указать мне в правильном направлении, чтобы изменить файлы конфигурации PHP или какие команды мне нужно запустить, чтобы запустить CURL с PHP в моей версии?

Прикрепленные местоположения файла конфигурации, найденные в phpinfo()

Configuration File (php.ini) Path   /etc/php5/apache2

Loaded Configuration File   /etc/php5/apache2/php.ini

Scan this dir for additional .ini files /etc/php5/apache2/conf.d

Additional .ini files parsed    /etc/php5/apache2/conf.d/05-opcache.ini, /etc/php5/apache2/conf.d/10-pdo.ini, /etc/php5/apache2/conf.d/20-json.ini, /etc/php5/apache2/conf.d/20-mysql.ini, /etc/php5/apache2/conf.d/20-mysqli.ini, /etc/php5/apache2/conf.d/20-pdo_mysql.ini, /etc/php5/apache2/conf.d/20-readline.ini
  • 0
    Возможно, вам понадобится a2enmod curl или что-то в этом роде. Проверьте каталог .ini files /, показанный в phpinfo() и посмотрите, правильно ли он там загружается.
  • 0
    Можете ли вы быть более конкретным, пожалуйста? Я обновил файлы конфигурации, указанные в phpinfo (). Благодарю.
Показать ещё 8 комментариев
Теги:
curl

3 ответа

1
Лучший ответ

Сначала проверьте, что расширение установлено (с соответствующим примером вывода):

$ sudo find / -name curl.so\*
/usr/lib64/php/7.0/modules/curl.so

Затем убедитесь, что расширение включено (снова с соответствующим выходом):

$ grep -Ri curl /etc/php*
/etc/php.d/20-curl.ini:extension=curl.so

Если первая команда не производит никакого вывода, модуль не был установлен. Вам нужно будет диагностировать, почему ваш системный менеджер пакетов не установил пакет. Для Ubuntu вам может потребоваться запустить sudo apt-get update.

Если первая команда работала, а вторая - нет, вам нужно включить расширение, а затем перезапустить Apache:

echo 'extension=curl.so' | sudo tee /etc/php5/apache2/conf.d/99-curl.ini
  • 0
    У меня есть 20-json.ini, но нет 99 *
  • 0
    Извините, опечатка. Исправлена. Эта команда направлена на создание нового файла, чтобы включить расширение.
Показать ещё 5 комментариев
0

при условии, что вы изначально установили apache и mod-php с помощью apt-get, правильно, этого должно быть достаточно, и в этом случае я полагаю, что завиток действительно установлен, но при инициализации возникает ошибка, и display_startup_errors отключен. включите display_startup_errors, перезапустите apache, загрузите страницу php и проверьте свои журналы ошибок, вероятно, есть строка, в которой говорится, почему модуль curl не может быть загружен.

0

Можете ли вы попробовать это. sudo php5enmod curl

Или,

Проверьте файл php.ini. Найти на странице для extension=php_curl Если есть ; символ, удалите этот символ в начале строки.

  • 0
    Я получаю это: sudo: php5enmod: команда не найдена
  • 0
    Хм. Есть ; символ в строке скручивания в файле php.ini?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню