Bonjour,

Tout d'abord je vais vous expliquer la situation.

C'est un réseau local, j'ai configuré un serveur WAMP qui est accessible par tout le réseau local.

L'accès à internet depuis ce réseau local s'effectue depuis un proxy :

blabla.proxy.com : 8080

(Chaque poste du réseau local doit renseigner ce proxy dans les options internet pour avoir accès à internet...)

J'ai installé WordPress sur le serveur, et je me rends compte que WordPress n'arrive pas à communiquer vers l'extérieur pour les mises à jour, les recherches de thèmes...

J'effectue quelques tests, et je m'aperçois tout simplement que PHP n'est pas capable de récupérer du contenu sur internet (fopen, file_gets_content...). A cause du proxy.

Je cherche un peu plus et je trouve, on peut passer un proxy en PHP, de cette manière par exemple.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php
 
function getPage($proxy, $url, $referer, $agent, $header, $timeout) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, $header);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_PROXY, $proxy);
    curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    curl_setopt($ch, CURLOPT_REFERER, $referer);
    curl_setopt($ch, CURLOPT_USERAGENT, $agent);
 
    $result['EXE'] = curl_exec($ch);
    $result['INF'] = curl_getinfo($ch);
    $result['ERR'] = curl_error($ch);
 
    curl_close($ch);
 
    return $result;
}
 
$result = getPage(
    'blabla.proxy.fr:8080', // use valid proxy
    'http://www.google.com/search?q=twitter',
    'http://www.google.com/',
    'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8',
    1,
    5);
 
if (empty($result['ERR'])) {
    // Job's done! Parse, save, etc.
    // ...
	print_r($result);
 
} else {
    // WTF? Captcha or network problems? 
    // ...
}
?>
Seulement ça aide pas WordPress à communiquer avec l'extérieur et je ne peux pas modifier directement WordPress. Puis le but étant que ça fonctionne pour tout (fopen...) et non seulement WordPress.

Donc je me demande, n'est-il pas possible d'assigner directement un proxy dans la configuration d'Apache/PHP.

Je cherche sur google, et je trouve des choses, mod_proxy, ProxyRemote... à configurer directement dans Apache.

Mais là s'arrêtent mes compétences en matière de serveur et je n'arrive à rien.

J'espère que j'ai bien expliqué ma situation et que vous pourrez m'éclairer sur le sujet.

Merci

Apache 2.2.17
PHP 5.3.5