PHP Derrière un Proxy
Accueil
Note : Dans cet article quand je parle de proxy , c’est un serveur filtrant les entrées/sorties d’un réseau sur le web. Pour qu’une machine (serveur ou poste client) puisse accéder au web et surfer, il faut que le proxy soit correctement configuré pour que toutes les connexions réseaux passent par lui.
Ne nous le cachons pas, PHP hébergé derrière un proxy c’est juste la merde. Il n’est pas possible d’effectuer une configuration de manière unique pour que toutes les applications PHP passe par un proxy. Il faut donc prendre en compte dans son développement cette problématique.
Quelques exemple pour éclairer mes propos : SoapClient , SoapServer , CURL prennent les configurations de connexion au proxy en paramètres. Les fonctions de la famille file_get_contents , peuvent prendre en paramètres les configurations proxy, ou être configurées de manière globale grâce au système de stream context . Et il y a les fonctions qui ne se configurent pas du tout comme exif_imagetype .
La question qui se pose, comment se faciliter la vie et arrêter de se prendre la tête avec ce p****n de PROXY de M***E ?
On inspire profondément, puis on expire.
Si vous utilisez Symfony2, il ne vous reste plus qu’a installer le superbement magnifiquement génialissime BehindAProxyBundle (Oui il est de moi ;) ) et lire la doc.
Dans le cas contraire vous pouvez utiliser le code du ProxyService.php .
Elle centralise les options de configurations de connexion au proxy de différentes fonctions. On y retrouve ce qu’il faut pour des connexions SOAP, CURL, ou stream context.
La solution palliative à ce problème est de charger le fichier distant sur le serveur dans un fichier temporaire. (Genre le mec, il se la pète avec une phrase super longue qui ne veux rien dire…)
Le plus simple pour comprendre c’est de coder tout ça.
Dans notre cas nous coderons en dure le stream context sans passer par des classes externes.
J’utilise cette méthode dans un fork de ImageBundle de Gregwar.
Pour les fonctions PHP qui utilisent le système de stream context, il est possible de définir les paramètres de manière globale.
Pour cela on utilise la fonction stream_context_set_default . Cette fonction doit être placé dans un fichier de configuration (au même niveau que la connexion à une base de données).
Ci-dessous un exemple d’implémentation.
PHP behind a proxy server | mon-beulogue dit : 10 octobre 2013 à 17 h 28 min […] French […]
[…] French […]
Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *
Commentaire
Nom *
E-mail *
Site web
Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées .
English (United States)
Français
.Net Core
Divers
Doctrine
Eclipse
Faites du Web
GWT
Java
JavaScript – AJAX
Jeux
Linux
Mobiles (Android – iPhone)
Outdoor
Outils
PHP
Symfony2
Système : Windows
Ubuntu
Visual Studio
Un café sans Prince sur la crête
Convertir un volume vhdx Hyper-V pour l’utiliser avec KVM ou Proxmox VE
.Net Core exécuter des commandes Bash/Shell
.Net Core application console comment cacher la saisie d’un mot de passe
How to create Nuget Package for .Net Core
septembre 2019 (1)
février 2018 (1)
juillet 2017 (3)
avril 2017 (1)
mars 2017 (1)
juillet 2016 (1)
septembre 2015 (2)
juin 2015 (3)
novembre 2014 (2)
octobre 2013 (4)
janvier 2013 (2)
octobre 2012 (1)
juin 2012 (1)
mai 2012 (1)
février 2012 (1)
janvier 2012 (2)
novembre 2011 (1)
octobre 2011 (1)
septembre 2011 (1)
août 2011 (2)
juin 2011 (1)
avril 2011 (1)
mars 2011 (1)
janvier 2011 (1)
décembre 2010 (1)
novembre 2010 (3)
octobre 2010 (1)
septembre 2010 (3)
juillet 2010 (1)
août 2009 (1)
mai 2009 (1)
avril 2009 (1)
mars 2009 (2)
février 2009 (1)
janvier 2009 (2)
décembre 2008 (3)
octobre 2008 (4)
août 2008 (3)
juillet 2008 (3)
juin 2008 (5)
mai 2008 (2)
avril 2008 (1)
février 2008 (1)
novembre 2007 (1)
septembre 2007 (2)
juillet 2007 (1)
juin 2007 (7)
mai 2007 (2)
avril 2007 (1)
mars 2007 (10)