Déployer un thème WordPress avec GIT
Pour déployer un thème WordPress et non pas un site WordPress entier, il vous faut :
- Un serveur
- Apache2 et GIT sur ce serveur
- Un WordPress dans un sous-dossier à la racine web de votre serveur.
vous correspond à votre nom d’utilisateur
205.106.208.20 est une suite de célèbres modèles de voiture à remplacer par l’adresse IP de votre serveur.
votresite c’est le dossier ou se trouve votre WordPress
votretheme c’est votre thème perso
Vous aurez besoin de connaître :
- Les bases de la ligne de commande
- GIT
Initialisez le dépôt GIT sur le serveur distant
Connectez-vous en ssh :
ssh vous@205.106.208.20
Créez un dossier (.git est simplement là pour le différencier d’un dossier classique) :
mkdir /home/vous/repos/votretheme.git
Placez-vous dedans :
cd /home/vous/repos/votretheme.git
Initialisez GIT :
git init --bare
Créez et donnez les droits au hook post-receive :
touch hooks/post-receive
chmod 0775 hooks/post-receive
Ce sera post-receive qui se chargera de la mise à jour du thème à chaque push.
Il vous faut l’éditer comme ceci :
nano hooks/post-receive
Et y placer le contenu suivant :
git --work-tree=/var/www/html/votresite/wp-content/themes/votretheme --git-dir=/home/vous/repos/votretheme.git checkout -f
Créez le dossier du thème dans WordPress et donnez-lui les permissions
sudo mkdir /var/www/html/votresite/wp-content/themes/votretheme
sudo chown -R www-data /var/www/html/votresite/wp-content/themes/votretheme
sudo chgrp vous /var/www/html/votresite/wp-content/themes/votretheme
sudo chmod 775 /var/www/html/votresite/wp-content/themes/votretheme
Ajoutez le dépôt distant en local
Vous devez initialiser git dans le thème WordPress que vous êtes en train de développer en local si ce n’est déjà fait.
Pour ajouter le dépôt distant faites :
git remote add preprod ssh://vous@205.106.208.20/home/vous/repos/votretheme.git
Déployez !
En local, faites :
git add .
git commit -m "Dernières modifications avant preprod"
git push preprod master
Maintenant dès que vous souhaiterez déployer un site en dev sur un serveur distant il vous suffira de faire un petit coup de :
git push preprod master
Et tout se fera automatiquement.
Elle est pas belle la vie ?