Как делать HTTP-запросы (POST,GET,DELETE,PUT) в плагине WHM?

Я пытаюсь написать плагин WHM (захожу в раздел плагинов WHM, чтобы он работал для root и реселлеров, а не в cPanel). Сценарий находится по адресу /usr/local/cpanel/whostmgr/docroot/cgi и называется addon_httpcli.php, чтобы вы поняли, о чем я говорю.

Проблема в том, что эта среда WHM имеет свой собственный двоичный файл PHP и, похоже, скомпилирована с меньшим количеством включенных модулей/функций, в отличие от большинства веб-серверов. Вот что я пробовал до сих пор:

  • cURL (curl_init() не распознан, поэтому я предполагаю, что они не включили cURL)
  • socket_create() и связанные функции (функция вызывается, но не отправляет пользовательские заголовки HTTP, поэтому я уверен, что они где-то что-то не включили...)
  • Поскольку работал простой file_get_contents("http://www.google.com/");, я попытался связать его с контекстом потока для отправки пользовательских заголовков и запроса POST. приводит к неограниченному времени ожидания, поэтому я уверен, что они, возможно, и здесь что-то отключили...

Короче говоря, я застрял на том, что именно нужно сделать, чтобы решить эту проблему и закончить свой плагин. Так что, возможно, умный кодер сталкивался с подобным кошмаром в прошлом и мог бы указать мне на свое решение.


person Steve    schedule 16.12.2011    source источник


Ответы (1)


Вы можете использовать пакет HTTP_Request2 PEAR. Он неплохой и поддерживает все HTTP-методы. Наверное, я называю это минимально-инвазивным решением.

Если вы хотите использовать cURL, есть другой способ (непроверенный, но он должен работать):

Отредактируйте /var/cpanel/easy/apache/profile/makecpphp.profile.yaml и найдите записи со словом «Curl». Просто измените «0» на «1». После сохранения файла вы сможете перекомпилировать cPanel PHP с помощью /scripts/makecpphp

person vstm    schedule 16.12.2011