Howto : Drupal derrière un proxy avec authentification

drupal_blog

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-guessed

Proxy           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:
Vus : 515
Publié par Admin-Linux : 176