Howto : Drupal derrière un proxy avec authentification
Si vous utilisez Drupal derrière un proxy sans ou avec authentification, comme par exemple pour un intranet.
Vous allez être confronté à un gros problème d’utilisation. L’accès à l’interface d’administration est très lent, car il fait des recherches pour savoir les mises à jours disponible, du socle drupal et de ses modules…
Voici comment contourner le problème :
Ajoutez dans le fichier settings.php :
$conf = array(
‘update_fetch_url’ => ‘http://localhost:80/release-history/’
);
Le port 80 est le port surlequel mon apache tourne, vous pouvez bien sur en mettre un autre
Puis autorisez sur votre serveur Apache le mod_proxy (debian-like) :
# ln -s /etc/apache2/mods-available/proxy.* /etc/apache2/mods-enabled/
# ln -s /etc/apache2/mods-available/proxy_http.load /etc/apache2/mods-enabled/# /etc/init.d/apache restart
Ensuite autorisez le mod_proxy pour le localhost : (Afin d’éviter ce message d’erreur : client denied by server configuration: proxy)
# vi /etc/apache2/mods-enabled/proxy.conf
<IfModule mod_proxy.c>
ProxyRequests Off
<Proxy *>
Order deny,allow
Deny from all
Allow from localhost
</Proxy>
ProxyVia On
</IfModule>
Puis ajoutez ces quelques règles au niveau d’Apache :
ProxyPass /release-history/ http://updates.drupal.org/release-history/
ProxyPassReverse /release-history/ http://updates.drupal.org/release-history/
ProxyRemoteMatch ^.*/release-history/.*$ http://localhost:4444/
Et enfin il faut utiliser cntlm afin de gérer l’authentification avec le proxy qui vous empêche de faire les mises à jour Drupal. CNTLM est un proxy d’authentification comme NTLMaps
CNTLM est disponible sous Ubuntu, un simple « aptitude install cntlm » et le tour est joué.
Il faut maintenant le configurer, pour cela :
# vi /etc/cntlm.conf
Voici les paramètres à changer :
Username votre-user
Domain votre-domaine
Password votre-mot-de-passe # Use hashes instead (-H)
#Workstation netbios_hostname # Should be auto-guessedProxy votre-proxy:8080
#Proxy 10.217.112.42:8080#
# This is the port number where Cntlm will listen (Ceci est le port d’écoute de CNTLM)
#
Listen 4444
On retrouve d’ailleurs ce port d’écoute dans les règles de Proxy ci-dessus.
Il vous suffit de redémarrer CNTLM et ça devrait fonctionner.
Si cela ne fonctionne pas, n’hésitez pas à revenir vers moi
Merci à Stillcut du forum drupalfr.org pour m’avoir orienté vers un post du forum officiel de Drupal qui m’a permis de trouver la solution
client denied by server configuration: proxy:
client denied by server configuration: proxy: