(есть много похожих вопросов по StackOverflow, но качество ответов не очень хорошо для всех, на которые я смотрел - следовательно, не помечая это как дубликат)
Я не могу сказать вам, почему он был отключен в используемой вами установке, но на базовых пакетах хостинга принято ограничивать уровень функциональности и способность приложений взаимодействовать с локальной инфраструктурой. Я хотел бы думать, что добросовестные сопровождающие пакетов также распространят PHP с максимально безопасной конфигурацией по умолчанию.
Я полностью потерян и начинаю с нуля эти вызовы API / curl ...
Здесь есть 2 проблемы - ваше понимание того, как это должно работать, и сообщение об ошибке, препятствующее запуску вашего кода. Если мы беспокоимся о последнем, то, по крайней мере, вы сможете решить первое самостоятельно.
ПРЕДУПРЕЖДЕНИЕ curl_init () отключено по соображениям безопасности
Это сообщение указывает, что либо safe_mode включен, либо curl_init включен в список отключенных функций в вашем PHP.ini.
Если вы не знаете, где находится ваш файл php.ini - проверьте вывод
<?php phpinfo();
Обратите внимание, что некоторые настройки ini могут быть переопределены в другом месте - например, в файлах Apache httpd.config или .htaccess, но не в этих.
Если вы не можете получить доступ к INI-файлу, или вы можете проверить настройки, используя:
<?php
print ini_get('disable_functions')
. "<br>" . ini_get('disable_classes')
. "<br>" . init_get('safe_mode');
В случае curl_init нас действительно интересует только первый из них. Но, как указано выше - если мы говорим о хосте, над которым у вас нет полного контроля, то это может быть ограничением вашего хостинг-пакета.
IIRC, запись в disable_functions замаскирует отсутствующее расширение - так что вы можете удалить запись из php.ini и начать видеть неопределенные ошибки функций. В этом случае вам нужно установить расширение, как описано здесь другими (но соответствующее имя файла php_curl.so в системах Unix / Linux), не забывая перезапускать httpd / php-fpm в зависимости от ситуации.
Теперь вы можете вызывать функцию. Это не значит, что ваш хост сможет:
- разрешить имя хоста в URL
- установить соединение http / https
Но вы увидите разные ошибки.