Automatiser la création de Virtualhosts sous linux (et plus)

J'ai écris pour mon usage personnel un petit script en bash pour GNU/Linux permettant de rapidement mettre en place un environnement de travail quand on attaque un projet web.
Testé sous Ubuntu, mais pas de raison qu'il ne fonctionne pas sous d'autres environnements.

Une fois exécute dans un terminal, le script vous demandera l'adresse en production du site sur lequel vous voulez travailler. À partir de ça, il créera le dossier de travail, le Virtual Host apache2, créera la base de donnée mysql, activera le vhost changera les droits sur le dossier de travail et enfin vous proposera de créer un alias drush (si vous travailler sous drupal).

Tout est configurable au début du fichier, et l’exécution est interactive, pour chaque étape, le script vous demandera si elle est nécessaire.

Une fois rendu le script exécutable, il suffira de taper dans un terminal :

./site-factory.sh

Vous pouvez aussi vous créer un alias bash.

Voici un aperçu de son exécution :

Ainsi avec ma configuration, pour l'url du site www.monsite.com, le script va :

  • Créer un dossier /media/vhosts/monsite.com/www qui sera mon document root
  • Créer un dossier /media/vhosts/monsite.com/logs pour les logs apache
  • Créer un dossier /media/vhosts/monsite.com/sh pour les éventuels scripts
  • Créer un dossier /media/vhosts/monsite.com/db pour mes backups de base de données
  • Le virtual host apache 2 qui configure tout ça
  • Ajout des url monsite.com et www.monsite.com au fichier host pour pointer vers 127.0.0.1
  • Changement des droits sur les dossiers
  • Activation du Virtual Host
  • Création d'un alias drush

Le code est sur GitHub, je suis preneur de toute idée, suggestion, commentaire, pull request, bug report...

https://github.com/kgaut/CLI-Magic/blob/master/Scripts/site-factory.sh

Commentaires

Bonsoir,

Merci pour ce script. Juste une question : quelles devraient être les permissions sur le dossier /var/vhosts et chaque dossier de vhost ?

Merci.

Ajouter un commentaire

Ne sera pas publié
CAPTCHA
Désolé, pour ça, mais c'est le seul moyen pour éviter le spam...