2009-09-25 6 views
1

Configuration: 1. Site Web Joomla 1.5 sur un serveur LAMP (CentOS 5.2/Apache 2.2/PHP 5.2.9/mysql 5) 2. Module Joomla pour la conversion de devises ajoutée. Module utilise google finance pour convertir la devise 3. La pile LAMP réside dans l'intranet derrière un proxy. Les variables d'environnement du serveur pour http_proxy, proxy yum.conf ont été configurées et le noyau a été mis à jour avec succès. 4. phpinfo() montre clairement que le curl est installé 5. module mentionné en '2' permet à 3 méthodes de se connecter à google finance, fread(), file_get_contents() et d'utiliser les bibliothèques cURL. Comme la boîte est derrière un proxy, seule la méthode des bibliothèques cURL devrait fonctionner.Le site Joomla sur le serveur LAMP derrière le proxy ne peut pas accéder au flux de ressources HTTP

Problème: sur une pile WAMP, la méthode de bibliothèque de boucles fonctionne correctement. Sur la pile de la lampe, cependant, le module est incapable de communiquer avec google finance, et renvoie une erreur indiquant que la connexion a expiré. Voici du code pour le rendre plus clair.

if (isset($_GET['process'])) {   
$url = "http://finance.google.com/finance/converter?a={ 
$_GET['a']}&from={$_GET['from']}&to={$_GET['to']}"; 
$app->get_page($url); 
$data = $app->process(); 
} 

function get_page($url) { 
if ($url!='') { 
echo $url; 
$ch = curl_init(); 
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
        curl_setopt($ch, CURLOPT_URL, $url); 
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
        curl_setopt($ch, CURLOPT_BINARYTRANSFER, $this->binary); 
        $this->html = curl_exec($ch); 
        curl_close($ch); 
      } 
    } 

J'ai même essayé d'ajouter un curl_setopt ($ ch, CURLOPT_PROXY, '10 .x.xx.xx: 8080); après curl_init(), en vain. J'ai compilé apache avec libcurl et php activé, et j'ai besoin de savoir ce qui suit: 1. Comment instruire PHP pour acheminer les demandes sortantes (flux) à travers le proxy? 2. Ai-je besoin de configurer cURL (libcurl) avec le proxyname et le port? 3. J'ai désactivé iptables, donc le pare-feu Linux n'est plus dans l'image, y a-t-il autre chose que je dois faire pour autoriser les requêtes sortantes? 4. J'ai configuré le proxy de sorte que ma pile LAMP soit débloquée pour tout le contenu, cURL fonctionne sur la ligne de commande, mais pas à partir de php/apache. Qu'est-ce que je rate? Des variables d'environnement? Des commutateurs?

Merci d'avance pour votre temps.

Shrinivas

+0

Si vous demandez une autre page, disons http://www.yahoo.com de php, est-ce que ça fonctionne de la même façon? –

+0

curl à partir de la ligne de commande fonctionne pour n'importe quel site (pas de blocs sur proxy), mais curl via php/apache ne fonctionne pas, curl signale un «Échec de connexion au proxy» errno7 et ne retreive pas la demande. Le netstat o/p affiche un état SYN_SENT pour la requête sortante tcp de ma pile LAMP vers le serveur externe (yahoo/google/etc). – Shrinivas

+0

J'ai travaillé sur les problèmes de cURL en apportant simplement le convertisseur de devise de google finance dans un iframe sur ma page web. Cela ne me permet pas de styler le convertisseur avec n'importe quel css, mais au moins cela fonctionne. – Shrinivas

Répondre

Questions connexes