2011-12-16 5 views
0

Я пытаюсь написать плагин WHM (работает в разделе плагинов WHM, чтобы он выполнялся для корневых и реселлеров, а не в cPanel). Сценарий находится по адресу /usr/local/cpanel/whostmgr/docroot/cgi и назван как addon_httpcli.php, чтобы вы могли понять, о чем я говорю.Как сделать HTTP-запросы (POST, GET, DELETE, PUT) в плагине WHM?

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

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

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

ответ

1

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

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

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