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.
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.Code:
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? // ... } ?>
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