6
votes

Définition de divers environnements (développement, production) basé sur l'URL

J'essaie de configurer des environnements de drupal en fonction de l'URL. Par exemple, si je vais à mysite.local, il utilisera localDB et changera le nom du site sur "MySite local"; Si je vais sur mySite.com, il basculera automatiquement pour utiliser PRODUCTDB et définir le nom sur "MySite".

Ceci est une configuration similaire que j'utilise pour la plupart des cadres basés sur MVC: P>

define('DEVELOPMENT', 'mysite.local');
define('PRODUCTION', 'mysite.com');

switch ($_SERVER['SERVER_NAME']) {
  case DEVELOPMENT:
    // development server
    $config['base_url']    = "http://mysite.local";
    $config['title']    = "DEVELOPMENT Mysite";
    $config['debug']    = 1;
    break;

  default:
    // live server
    $config['base_url']    = "http://mysite.com/";
    $config['title']    = "Mysite";
    $config['debug']    = 0;
    break;
}


1 commentaires

Je suggère que vous ayez un coup d'oeil à drupal.stackexchange.com/questions/9/... , surtout ma réponse là-bas.


3 Réponses :


0
votes

Je pense que l'utilisation de sites distincts est ce que vous voulez. J'ai une configuration similaire et les différents sites ont chacun leur propre fichier Paramètres.PHP. Mais ensuite, j'ai symbolisé les modules et les thèmes de sorte que je n'ai pas de fichiers en double. Mais si vous configurez un environnement pour le développement, vous voudrez les garder séparés.

J'ai donc quelque chose comme ceci: xxx

drupal utilisera le bon site Configuration basée sur l'URL.


1 commentaires

C'est quelque chose de similaire à ce que je veux, mais je pensais qu'il devrait y avoir une meilleure façon de les définir, car je ne peux pas utiliser Symlink (Windows Dev Machine), et ces liens seront foirés lors de la déménagement à un différente machine. Je suppose que la réponse courte sera qu'il n'ya rien d'en place comme celui-ci, et c'est que je dois aller avec le "multi-site" et avoir répété des fichiers, des modules, etc. qui conduiront à la fragmentation ou à modifier les paramètres. php et le mettre comme je l'ai ci-dessus ...



1
votes

Qu'est-ce que vous décrivez s'appelle Configuration multi-site , à Drupal.
Dit peu de mots, dans une configuration multi-sites, vous définissez Drupal pour utiliser différents fichiers de configuration basés sur le nom de domaine utilisé pour accéder au site. Il permet d'utiliser le même code pour différents noms de domaine qui pointent sur le même serveur, comme dans votre cas, où vous souhaitez accéder au même serveur Web à l'aide de différents noms de domaine.

Vous êtes également intéressé par ce qui s'est également intéressé dans Exécuter plusieurs sites de la même base de code (multi-site) .


1 commentaires

Merci. Je suis conscient de la caractéristique «multi-site» de Drupal, mais cela signifie avoir différents dossiers, modules, téléchargements, etc. par chaque environnement. J'ai déjà utilisé cela avant, mais je veux quelque chose de différent. Je souhaite pouvoir définir différents environnements pour le même site (le dossier du site est toujours "par défaut", mais le nom, la base de données et d'autres paramètres seront définis en fonction de l'URL). En d'autres termes, je l'ai déployé sur ma boîte locale, la DB sera automatiquement commutée vers mon DB local, etc.



5
votes

Personnellement, je ne commettez pas les paramètres.php dans la version de version, (Paramètres.default.php est), alors gardez simplement un fichier de paramètres personnalisés.php basé sur des paramètres.default.php dans chaque environnement.

Toutefois, Si vous préférez configurer vos environnements de cette façon, alors quelque chose comme cela fonctionnerait dans votre fichier de sites / par défaut / paramètres.php.php. xxx

N'oubliez pas, car chacun de ces vars vous Utilisez ici, vous devez commenter si elles sont définies dans d'autres parties de paramètres.php.

Je devrais également ajouter que je pense que Multi-site dans le but d'un environnement de développement est une mauvaise idée, je Devinez pour la même raison que je préfère chaque environnement ayant son propre fichier personnalisé.php. Dans la plupart des cas, je préfère garder le code portable en ce que je n'ai besoin d'aucune référence de code ou de fichier de fichier à aucun environnement, sauf dans un fichier de paramètres de l'environnement, je suis le code sur.

Utilisation La fonctionnalité multi-sites de Drupal pour chaque environnement dont vous avez besoin pour développer et mettre en scène, car d'autres suggèrent ici, seraient insensées pour gérer.


3 commentaires

C'est probablement comme ça que je vais aller. J'en ai besoin de cette façon, je peux donc déployer directement de mon SVN, au lieu de changer de fichiers et de vous assurer que tout fonctionne à chaque fois. La question devient encore plus compliquée lorsque j'ajoute Station Server à l'environnement.


Il semble plus compliqué que nécessaire, mais je sais que chaque situation est différente. Si vous utilisez la méthode de simplement copier des paramètres.default.php à Paramètres.php (c.-à-d. Paramètres.php ne pas être dans la version de version) Dans chaque environnement une fois, vous devriez être capable de déployer via SVN bien, car vos fichiers de paramètres seront nécessaires. ne jamais être touché. Configuration de chaque fichier Paramètres.PHP Une fois par moi est plus facile et plus portable que de gérer toutes ces données dans un fichier Settings.PHP unique.


Notez que HTPHUSH semble utiliser $ _Server ['http_host'] et non $ _Server ['Nom_serveur].