2011-12-16 3 views
0

J'essaye d'écrire un plugin de WHM (fonctionnant dans la section de plugins de WHM de sorte qu'il fonctionne pour la racine et les revendeurs, pas dans le cPanel). Le script est situé à /usr/local/cpanel/whostmgr/docroot/cgi et nommé addon_httpcli.php afin que vous puissiez comprendre de quoi je parle.Comment faire des requêtes HTTP (POST, GET, DELETE, PUT) dans un plugin WHM?

Le problème est que cet environnement WHM a son propre binaire PHP et qu'il semble compilé avec moins de modules/fonctions activés contrairement à la plupart des serveurs web. Voici ce que j'ai essayé jusqu'à présent:

  • cURL (curl_init() pas reconnu alors je suppose qu'ils ne permettaient pas cURL)
  • socket_create() et fonctions connexes (fonction appelée mais non envoyer des en-têtes HTTP personnalisés, donc je parie qu'ils n'ont pas activé quelque chose quelque part ...)
  • En tant que simple file_get_contents ("http://www.google.com/"); travaillé j'ai essayé le couplage avec contexte de flux pour envoyer des en-têtes personnalisés et une requête POST, il conduit à sans limite le temps d'attente, donc je parie qu'ils peuvent avoir quelque chose désactivé ici aussi ...

En bref, je suis coincé à quoi faire exactement pour résoudre ce problème et terminer mon plugin. Alors peut-être qu'un codeur intelligent a déjà rencontré un cauchemar similaire dans le passé et pourrait me diriger vers sa solution.

Répondre

1

Eh bien, vous pouvez utiliser le paquet PEAR HTTP_Request2. C'est assez bon et supporte toutes les méthodes HTTP. Je suppose que j'appelle cela la solution minimale-invasive.

Si vous souhaitez utiliser cURL il y a une autre façon (non testé, mais il devrait fonctionner):

Modifier /var/cpanel/easy/apache/profile/makecpphp.profile.yaml et rechercher les entrées avec « Curl » en elle. Changez simplement le "0" en "1". Après avoir enregistré le fichier, vous devriez pouvoir recompiler le PHP cPanel avec /scripts/makecpphp

Questions connexes