У меня 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
Сначала проверьте, что расширение установлено (с соответствующим примером вывода):
$ 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
при условии, что вы изначально установили apache и mod-php с помощью apt-get, правильно, этого должно быть достаточно, и в этом случае я полагаю, что завиток действительно установлен, но при инициализации возникает ошибка, и display_startup_errors
отключен. включите display_startup_errors
, перезапустите apache, загрузите страницу php и проверьте свои журналы ошибок, вероятно, есть строка, в которой говорится, почему модуль curl не может быть загружен.
Можете ли вы попробовать это. sudo php5enmod curl
Или,
Проверьте файл php.ini. Найти на странице для extension=php_curl
Если есть ;
символ, удалите этот символ в начале строки.
;
символ в строке скручивания в файле php.ini?
a2enmod curl
или что-то в этом роде. Проверьте каталог.ini
files /, показанный вphpinfo()
и посмотрите, правильно ли он там загружается.