如何使HTTP请求(POST,GET,DELETE,PUT)在一个WHM插件


How to make HTTP requests (POST,GET,DELETE,PUT) in a WHM plugin?

我试图写一个WHM插件(运行到WHM插件部分,使其运行的根和经销商,而不是在cPanel)。该脚本位于/usr/local/cpanel/whostmgr/docroot/cgi并命名为addon_httpcli.php所以你可能明白我在说什么。

问题是这个WHM环境有自己的PHP二进制文件,它似乎编译了更少的模块/功能,不像大多数web服务器。以下是我到目前为止所做的尝试:

  • cURL (curl_init()不被识别,所以我猜他们没有启用cURL)
  • socket_create()和相关函数(函数调用,但不发送自定义HTTP头,所以我打赌他们没有启用某处的东西…)
  • 作为一个简单的file_get_contents("http://www.google.com/");工作我试图耦合它与流上下文发送自定义头和POST请求,它导致无限的等待时间,所以我敢打赌他们可能已经禁用了这里的东西太…

简而言之,我被困在做什么来解决这个问题,完成我的插件。所以也许一个聪明的程序员在过去遇到过类似的噩梦,可以告诉我他/她的解决方案。

你可以使用HTTP_Request2 PEAR包。它非常好,支持所有http方法。我想我把这叫做微创解决方案。

如果你想使用cURL,还有另一种方法(未经测试,但应该可以工作):

编辑/var/cpanel/easy/apache/profile/makecpphp.profile.yaml,查找包含"Curl"的条目。只需将"0"更改为"1"。保存文件后,您应该能够重新编译cPanel PHP与/scripts/makecpphp