Multi sites d'hébergement drupal

Si vous utilisez plus d'un site Drupal, vous pouvez simplifier la gestion et pouvez mettre à jour vos sites en utilisant la fonction multi-site. Multi-site vous permet de partager une seule installation de Drupal (y compris le code de base, contribué modules et thèmes) entre plusieurs sites.

Ceci est particulièrement utile pour gérer le code puisque chaque mise à jour ne doit être fait une fois. Chaque site aura sa propre base de données et ses propres paramètres de configuration, de sorte que chaque site aura son propre contenu, les paramètres, les modules activés, et le thème activé. Cependant, les sites partagent une racine de base de code et document web, donc il peut y avoir des problèmes de sécurité avec plusieurs administrateurs. (Voir la section « Problèmes de sécurité » ci-dessous pour plus d'informations).

Multi sites Drupal hébergement difficile à faire parce que ce

Vue d'ensemble du processus

Pour créer un nouveau site en utilisant une base de code Drupal partagé, vous devez suivre les étapes suivantes:

  1. Créer une nouvelle base de données pour le site (s'il existe déjà une base de données existante, vous pouvez également utiliser en définissant un préfixe dans la procédure d'installation).
  2. Créer un nouveau sous-répertoire du répertoire « sites » avec le nom de votre nouveau site. Voir ci-dessous ou les commentaires dans le fichier default.settings.php des informations sur la façon de nommer le sous-répertoire.
  3. Copiez le fichier sites / default / default.settings.php dans le sous-répertoire créé à l'étape précédente. Renommez le nouveau fichier settings.php.
  4. Pour Drupal 8 seulement: Activer la fonction multi-site en copiant (et changement de nom) des sites de fichiers / example.sites.php aux sites / sites.php. Il n'y a pas besoin de modifier le fichier, sauf si vous avez besoin d'alias du site. Les règles de sélection des sites normaux applique.
  5. Ajustez les autorisations du nouveau répertoire du site, et accorder des autorisations d'écriture sur le fichier de configuration (settings.php).
  6. Si vous utilisez un sous-répertoire tel que example.com/subdir et non un sous-domaine tels que subd.example.com vous avez probablement créer un lien symbolique pour chaque site. Voir le sous-répertoire section multi-site ci-dessous pour plus de détails.
  7. Dans un navigateur Web, accédez à l'URL du nouveau site et poursuivre la procédure d'installation standard Drupal (si vous obtenez une boucle de redirection infinie, vérifier si le fichier install.php existe la racine du document).

Il peut également être nécessaire de modifier votre fichier de configuration du serveur Web (souvent appelé httpd.conf pour Apache) pour permettre Drupal de passer outre les paramètres d'Apache. Cela est vrai pour toutes les installations de Drupal et ne sont pas spécifiques à l'installation multi-site. Des informations supplémentaires sont disponibles dans les meilleures pratiques: Configuration Apache et PHP pour Drupal dans une section environnement partagé du Guide d'installation.

Multi sites d'hébergement ou drupal

Les détails du processus

Domaines, les URL et sites nom sous-répertoire

Le nouveau sous-répertoire du répertoire des sites a un nom qui est construit à partir de l'URL du site. Par exemple, la configuration www.example.com serait dans les sites / example.com / settings.php. Vous n'avez pas besoin d'inclure « www » dans le cadre du nom du répertoire.

Drupal utilisera les mêmes sites / répertoire example.com pour tout sous-domaine de example.com. y compris www, à moins qu'il existe une alternative, correspondant à des sites de sous-domaines sous-répertoire. Par exemple, l'URL sub.example.com serait servi à partir de sites / sub.example.com. si elle existe.

Pour un sous-répertoire URL, comme example.com/subdir. nommer les sites sous-répertoire comme suit: les sites / example.com.subdir - et lisez la section ci-dessous sur l'obtention de sous-répertoire de travail multi-sites.

Si vous installez sur un port non standard, le numéro de port est considéré comme la première partie du sous-domaine. Par exemple, www.example.com:8080 pourrait être chargé à partir de sites / 8080.example.com. Si ce répertoire n'existe pas, Drupal serait alors chercher des sites / example.com. comme un vrai sous-domaine.

modules spécifiques au site et thèmes

Chaque configuration du site peut avoir ses propres modules spécifiques au site et thèmes, en plus de ceux installés dans les « modules » standard et répertoires « thèmes ». Pour utiliser des modules ou des thèmes spécifiques au site, il suffit de créer un répertoire « modules » ou « thèmes » dans le répertoire de configuration du site. Par exemple, si sub.example.com a un thème personnalisé et un module personnalisé qui ne devrait pas être accessible à d'autres sites, la configuration ressemblerait à ceci:

racine de document

Une source de confusion fréquente est que dans une installation multisite Drupal la racine du document du serveur Web est le même pour tous les sites. Par exemple, avec les trois sites suivants: example.com, sub.example.com et example.com/site3 il y aura un seul répertoire Drupal et tous les sites appellerez le même fichier index.php.

Certains webhosts créent automatiquement un nouveau répertoire (par exemple example.com) lors de la création d'un nouveau domaine ou sous-domaine. Dans ce cas, il est nécessaire de faire un lien symbolique vers le répertoire principal Drupal, ou mieux encore lors de la création du domaine ou sous-domaine, mis à utiliser la même racine du document que le site où vous avez installé Drupal.

Sous-répertoire multi-sites

Si vous essayez d'obtenir plusieurs sites Drupal de travail en utilisant des URL sous-répertoire plutôt que sous-domaine ou des URL de domaine, vous pouvez rencontrer des problèmes. Vous commencez en faisant un répertoire tels que les sites / example.com.subdir. et de mettre un fichier settings.php là. Si cela fonctionne pour vous, super! Mais il ne sera probablement pas.

alias LOCALHOST pour poste de travail local

Sur de nombreux systèmes, il est possible de créer des entrées dans un fichier « hosts » pour créer des alias pour le nom de localhost pour un poste de travail local. En créant des alias pour localhost il est possible de créer des noms tels que localdev1.example.com et localdev2.example.com, tant pour l'ordinateur local.

Si d'autre part vous utilisez les sous-répertoires dans la racine de votre web local, créer un lien symbolique comme celui-ci:

et le nom de votre dossier de site localhost.subdir.

les changements de nom de domaine

le sous-répertoire ne doit pas Une fois qu'un site est en production dans un sous-répertoire particulier dans le répertoire sites, être renommé, même si le site Web URL change. En effet, plusieurs tables de base de données (par exemple: système et fichiers) comprennent des références à des « sites / www.mydomain.com. » Au lieu de renommer le répertoire des sites, vous pouvez créer un lien symbolique vers la nouvelle URL de l'ancien. Accédez au répertoire des sites, puis utilisez la commande suivante:
$ Ln -s /path/to/drupal/sites/old.domainname.com new.domainname.com

Les préoccupations de sécurité

Vous voudrez peut-être revenir en utilisant la configuration multi-site de Drupal, dans des situations où les administrateurs de tous les sites en cours d'exécution de la même base de code ne sont pas non plus la même personne ou un petit groupe avec un niveau élevé de confiance mutuelle. La raison en est que toute personne ayant les droits d'administration sur un site Drupal peut exécuter du code PHP arbitraire sur ce site par divers moyens (même sans accès FTP au site), et que le code PHP arbitraire pourrait être utilisé d'un site à affecter un autre site, si les deux sites sont dans la même racine et de partager le même code Drupal document HTTP.

Donc, à moins que vous faites totalement confiance tous les administrateurs des sites que vous envisagez en cours d'exécution de la même base de code Drupal pour être bien informé, prudent, et non malveillant, vous voudrez peut-être envisager d'installer leurs sites Drupal dans des zones complètement séparées du serveur Web qui ne sont pas en mesure d'influer sur l'autre via un script PHP.

De temps en temps, Drupal est soumis à des failles de sécurité. insectes qui permettent un accès non autorisé à un code de noyau Drupal. Une fois qu'un pirate a accès à votre code de base, ils ont accès à tous vos multisites par une attaque. Non-multisites exigent des attaques séparées, ce qui peut offrir suffisamment de temps pour que la vulnérabilité soit assurée.

Quand multisite

En règle générale, sur l'opportunité d'utiliser ou non multisites installations que vous pouvez dire:

  • Si les sites sont pour le même client, et il est de simplifier la portée de chaque site, l'examiner.
  • Si les sites sont similaires dans la fonctionnalité, utiliser les mêmes modules ou utiliser la même distribution Drupal, considérer.
  • Si vous avez des ressources limitées / dotation en personnel, mais beaucoup de sites pour gérer et maintenir, pensez certainement.
  • Si la fonctionnalité ou la portée sont différentes, ne pas utiliser multisite.
  • Si vous gérez plusieurs distributions, ne pas utiliser multisite.
  • Si les clients sont différents, ne pas utiliser multisite.

La conversation / débat Drupalcon Austin (2014) sur multisite où les avantages, les inconvénients, et quelques suggestions sont discutées par un large public des perspectives des utilisateurs est disponible sur youtube.

Multisite est populaire quand vous voulez vos sites de rester le plus à jour possible en ce qui concerne les mises à jour de sécurité du module Drupal, mais lorsque vous avez des fonctionnalités différentes, ce qui est plus difficile à faire, car il faut plus de temps pour tester de façon indépendante chaque site. Si vous faites multisite, puis la mise à jour doit être exécuté en même temps pour tous les sites qui n'est pas toujours possible. Si cela est une préoccupation ou si vous avez un très grand multisite mais toujours privilégier l'approche, vous voudrez peut-être envisager d'explorer un plugin drush appelé DSLM qui traite la gestion multisite un peu différemment mais avec les mêmes avantages.

Les sites avec des fonctionnalités différentes finissent généralement par être mis à jour à des moments différents, car chacun doit être testé et sauvegardé. mises à jour du site et les sauvegardes peuvent être automatisées avec drush avec ou sans multisite si la cible de @sites disponible pour drush simplifie l'application majeure partie des commandes à multisites.

Détails de la configuration multi-sites recommandés

Ce ne sont pas des règles dures et rapides, mais certainement aider à vous empêcher de vous peindre dans un coin avec multisite.

Utilisez Drush pour gérer les mises à niveau de déploiement / site

Drush est un CLI puissant qui permet des commandes de script contre les sites Drupal. Lorsqu'il est combiné avec multisites, ils deviennent beaucoup plus faciles à gérer à l'échelle. Drush alias (qui permettent le référencement des regroupements de sites / cibles avec des commandes simples) sont essentielles pour gérer avec succès les grands déploiements multisites. Par exemple, de nombreux établissements d'enseignement fonctionnent multisites avec bien plus de 100 à 1000 sites de écoulage un seul multisite.

Utilisez sites.php pour gérer les sites

Utiliser les sites inclus / sites.php (7.x Drupal) ou des sites / sites.example.php (Drupal 8.x.x) pour référencer des sites dans un multisite au lieu d'adresse en fonction. Cela vous permettra de migrer entre les déploiements (par exemple. Dev, stade, prod) plus facilement. configuration traditionnelle multisite aurait de créer des répertoires tels que les sites / my.new.domain.address / settings.php mais vous n'avez pas besoin d'utiliser le domaine comme le nom du dossier pour que cela fonctionne. En sites.php vous pouvez faire une référence comme « my.new.domain.address » => 'projet / version1. En faisant cela, vous permettre d'utiliser les correspondances de sites.php sur dev qui ressemblent plus our.dev.address et encore pointer au projet / version1 comme cible.

Articles Liés

Hébergement plusieurs sites drupalIl y a plusieurs raisons pour lesquelles un administrateur ou un développeur de systèmes peuvent choisir d'héberger plusieurs sites sur le même serveur dans une configuration multisite. Par exemple, une telle configuration pourrait: ...
Wp-signup.php le site d'hébergement de plusieurs wordpressAvez-vous vraiment besoin d'un réseau? Les sites dans un réseau multi-sites sont séparés, un peu comme les blogs séparés à WordPress.com. Ils ne sont pas reliés entre eux comme des choses dans d'autres types de ...
hébergement de site Drupal multiplesBonjour et bienvenue. Je suis en plusieurs sites en utilisant la fonction multisite de Drupal, et a remarqué l'absence d'un groupe pour discuter des diverses questions et comment-tos liés à faire. Si quelqu'un a ...
hébergement de domaine Wordpress multiplesDe nombreux utilisateurs apprennent rapidement à gérer en toute confiance plusieurs sites WordPress sur leur propre. Certains commencent même la gestion des sites WordPress pour les clients, les amis et la famille. Récemment, l'un de nos ...
Changer domaine principal d'hébergement du site wordpress multiplesDans ce bref turorial installer WordPress multisite Nous pouvons également nous et donner à chaque site dans le réseau d'une manière propre domaine de niveau supérieur séparé. Modification des paramètres DNS d'abord nous devons pointer tous les domaines ...