Question

Je suis en cours d'exécution Drupal dans un intranet qui est derrière simple proxy HTTP. Je voudrais que les modules de mises à jour et à base réellement.

Je me souviens qu'il y avait un hack de base pour ce faire sur Drupal 6, mais je ne peux pas trouver la page plus.

Quelqu'un sait comment je peux obtenir ce travail?

Était-ce utile?

La solution

L'une de nos installations d'entreprises avaient un proxy direct qui a empêché l'accès direct à Internet, nous avons fini par rapiéçage core avec « le patch proxy » (ainsi nommé ainsi parce que cette question a été ouvert depuis 2004 - http://drupal.org/node/7881 ).

http://drupal.org/node/7881#comment-4134240 - a un patch pour Drupal 7 http://drupal.org/node/7881#comment-2446280 - a un patch pour drupal 6

Une fois le patch installé, vous serez en mesure de modifier drupal_http_request () pour envoyer toutes les requêtes via le proxy.

De cette façon, tous les modules qui nécessitent un accès à Internet fonctionneront comme prévu, par exemple statue de mise à jour, agrégateur, etc openID

UPDATE : Le patch est déjà fusionné dans le coffre Drupal 7 ( https : //drupal.org/comment/6425278#comment-6425278 ), et nous espérons être avec Drupal 7.16

Autres conseils

Pour référence, c'est la syntaxe que vous pouvez utiliser dans Drupal pour le configurer pour exécuter derrière un proxy ( default.settings.php / 7 ):

/**
 * External access proxy settings:
 *
 * If your site must access the Internet via a web proxy then you can enter
 * the proxy settings here. Currently only basic authentication is supported
 * by using the username and password variables. The proxy_user_agent variable
 * can be set to NULL for proxies that require no User-Agent header or to a
 * non-empty string for proxies that limit requests to a specific agent. The
 * proxy_exceptions variable is an array of host names to be accessed directly,
 * not via proxy.
 */
# $conf['proxy_server'] = '';
# $conf['proxy_port'] = 8080;
# $conf['proxy_username'] = '';
# $conf['proxy_password'] = '';
# $conf['proxy_user_agent'] = '';
# $conf['proxy_exceptions'] = array('127.0.0.1', 'localhost');

Il y a un module qui

Il est actuellement que Drupal 6, mais devrait fournir un bon point de départ.

Pour résoudre la mise en scène pbs, je travaille localement avec le nom de domaine réel de production, mais derrière un proxy, de sorte que l'installation drupal et la configuration du serveur Web sont strictement identiques (sur certains conf l'écoute IP pourrait être différente, en fonction de la écoute ip dans la production).

Alors, j'ai eu un proxy pour répondre http: //mydomain.local , mandatement http:. //www.mydomain.tld , mais sur une adresse IP locale

Whith nginx, dans le fichier conf vhost locale:

server_name  mydomain.local;
set $proxied_server_name www.mydomain.tld;
set $proxied_cookie_domain mydomain.tld;

# then generic proxy conf
proxy_set_header Host              $proxied_server_name;
proxy_set_header X-Real-IP         $remote_addr;
proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;

# My param added for drupal absolute url construction
proxy_set_header X-Proxy-Host      $host;               

# For headers rewriting (Location or Refresh)
proxy_redirect   http://$proxied_server_name/ http://$host/;

proxy_cookie_domain $proxied_server_name $host;  
# and for drupal auth, with cookies without sub-domain
proxy_cookie_domain $proxied_cookie_domain $host;

Pour la vhost par proxy, comme dans la production

server_name  www.mydomain.tld;

Et dans mon settings.php

if (isset($_SERVER['HTTP_X_PROXY_HOST'])) {
  $base_url = 'http://' .$_SERVER['HTTP_X_PROXY_HOST'];
}

Avec cette conf, je peux synchroniser tous les fichiers et base de données ET drupal configuration du serveur entre un grand nombre d'installation drupal (dev et production dans mon cas, mais pourrait être tout ce que vous voulez).

Licencié sous: CC-BY-SA avec attribution
Non affilié à drupal.stackexchange
scroll top