Il y a quelques temps j’ai écrit un article sur le montage d’un petit VPS sous Easy Engine pour faciliter la création et gestion de site web. Pendant quelques années j’ai utilisé cet outil sans aucun problème et je suis monté un peu en compétences sur la gestion d’un serveur. Sauf que l’an dernier (2018), EE est passé en v4…

Pour les personnes qui ne souhaitent pas radicalement changer leurs habitudes, WordOps est un fork de EasyEngine V3 avec plein d’améliorations. (Merci Thomas pour sa remarque en commentaire)

Parmi les changements de cette v4, notez :

  • l’abandon du service e-mail
  • le passage de Python à PHP pour l’écriture du coeur,
  • l’utilisation de Docker au lieu de l’OS,
  • le nombre limite de site web est de 25 dû à la limite de conteneurs Docker par serveur,
  • l’utilisation de PHP 7.2 par défaut,
  • la réécriture de certaines commandes ee

Pour les personnes qui viennent de la v3, sachez qu’il y a un script de migration.

Pour plus d’informations sur cette mise à jour, je vous laisse lire l’annonce officielle.

Installer un serveur VPS

Je ne vais pas nécessairement copier/coller mes conseils pour acheter/installer un VPS. Je vous invite à lire ou relire mon article « Gérer son serveur VPS grâce à Easy Engine« , les parties suivantes de l’article sont toujours viables :

Si ce n’est que l’offre OVH 2016 n’est plus d’actualité. A la place vous aurez une offre 2018 à 20Go, ce qui est totalement à votre avantage 🙂

Les autres parties sont beaucoup moins utiles, vous pouvez donc les sauter et passer à la suite de cet article.

Concernant l’installation de Easy Engine v4, je vous invite à remplacer la commande de l’ancienne version par :

wget -qO ee https://rt.cx/ee4 && sudo bash ee

Encore une fois, pour les personnes qui viennent de la v3, sachez qu’il y a un script de migration à utiliser.

Créer son site web avec Easy Engine v4

On commence bien avec cette commande qui a déjà changé par rapport à la v3. Pour créer un site web avec un nouveau domaine il vous faudra rentrer la commande suivante. Je vous mets quelques flag classiques, lisez le détail après le code avant de le copier/coller/exécuter 😉

ee site create example.org --type=wp --mu=subdir --ssl=le --php=5.6

Ici je cherche à créer un site WordPress de domaine example.org avec un multisite en sous-dossier, HTTPS activé avec certificat Let’s Encrypt sur un PHP v5.6.

Si vous avez besoin d’autre chose, lisez attentivement les options qui s’offrent à vous.

La commande d’update vous permet de revenir sur une configuration d’un domaine que vous souhaiteriez revoir. Elle a également changé mais utilise les mêmes nouveaux flags sur la commande create.

Modifier la config Nginx avec Easy Engine 4

Une chose un peu ennuyante avec Easy Engine 4 ce sont les conteneurs Docker. Votre configuration est embarquée dans le conteneur qui fait tourner Nginx pour un domaine spécifique, qu’il faudra donc redémarrer à chaque modification de votre configuration.

Une autre chose fun est donc de trouver le bon fichier .conf à éditer afin qu’il soit pris en compte lors du démarrage de Docker.

Sur cette nouvelle installation, vous trouverez un fichier custom user.conf pour un domaine spéficique dans : /opt/easyengine/sites/example.org/config/nginx/custom
Vous aurez besoin d’être identifié comme root pour effectuer l’édition. Vous pouvez éditer ce fichier, l’enregistrer et redémarrer Nginx. Ah… comment le redémarrer ce petit Nginx ?

Pour rappel Nginx tourne dans un conteneur Docker. Personnellement pour m’assurer que Nginx utilisait bien la bonne configuration à jour, voici ce que j’ai fini par faire :

sudo ee service reload nginx-proxy
sudo ee site reload example.org
sudo docker restart exampleorg_nginx_1

Notez que le conteneur Docker est redémarré grâce à son nom. Pour vous assurer de redémarrer le bon nom de conteneur, je vous invite à faire un check sur son nom. Listez les conteneurs actifs :

docker ps

Cette commande retourne un tableau avec les identifiants et noms des conteneurs. Repérez le nom qui contient votre domaine et nginx, et copiez/collez-le à la place de exampleorg_nginx_1 dans mon exemple de commande précédent si ce n’est pas le bon nom.

Personnellement j’ai fini par me faire quelques alias pour me faciliter la vie.

Après avoir redémarré Nginx, votre configuration devrait être prise en compte. Notez que l’inclusion de fichier de conf avec include n’a pas l’air de fonctionner. Seul le fichier user.conf semble embarquer dans le conteneur Docker.

Quelques alias bien pratiques

Comme je vous le disais, je me suis créé quelques alias utiles pour faciliter mon quotidien. Pour créer un alias il vous faut éditer le fichier .bashrc ou .zshrc (si vous avez installé OhMyZSH sur votre serveur).

Faites donc un petit :

sudo nano ~/.bashrc

Ensuite récupérez les alias qui peuvent vous être utiles dans le contenu de fichier suivant :

# Go To blog files (need root rights)
alias gototheme='cd /opt/easyengine/sites/example.org/app/htdocs/wp-content/themes/myWPtheme/'
alias gotowebsite='cd /opt/easyengine/sites/example.org/app/htdocs'

# Go To Conf files (need root)
alias gotoconf='cd /opt/easyengine/sites/example.org/config/nginx/custom'
alias editconf='nano /opt/easyengine/sites/example.org/config/nginx/custom/user.conf'

# Nginx commands
nginxReload(){
	sudo ee service reload nginx-proxy
	sudo ee site reload example.org
	sudo docker restart exampleorg_nginx_1
}
alias nginxreload=nginxReload

# EE commands
alias nginxstart='ee service enable nginx-proxy'
alias nginxstop='ee service disable nginx-proxy'

# Docker commands
alias dockerrestart='docker restart $(docker ps -q)'

Voilà pour ce petit récapitulatif de l’utilisation et la configuration de la nouvelle mouture de Easy Engine.

Personnellement je trouve les choix techo un peut étrange pour cette version, mais je ne vais pas rentrer dans ce débat. N’hésitez pas à partager vos questions ou retour d’expérience si jamais vous avez des astuces 🙂