Installation d’un environnement de développement YesWiki sous Debian GNU/Linux
Date
11.03.2024
Résumé
Dans mon billet de blog d’hier, je parle de l’environnement de développement partagé avec TigerVNC que j’ai mis en place dans une machine virtuelle pour faire des sessions de pair programming sur le code de YesWiki avec MrFlos. Aujourd’hui je vous donne les détails des étapes à suivre pour vous installer le même environnement de développement YesWiki que celui que j’ai mis en place dans ma machine virtuelle.
Billet
Dans mon billet de blog d’hier, je parle de l’environnement de développement partagé avec TigerVNC que j’ai mis en place dans une machine virtuelle pour faire des sessions de pair programming sur le code de YesWiki avec MrFlos. Aujourd’hui je vous donne les détails des étapes à suivre pour vous installer le même environnement de développement YesWiki que celui que j’ai mis en place dans ma machine virtuelle.
Les explications que je donne ici sont faites pour un poste de travail sous Debian GNU/Linux. Ça peut être une machine virtuelle comme moi ou un poste de travail classique sur un ordinateur portable ou fixe. Si vous êtes sur un système d’exploitation différent il vous faudra peut-être adapter certaines parties. J’essaye de donner des instructions suffisamment détaillées pour que n’importe qui soit capable de les suivre. Mais pour ensuite utiliser cet environnement il faudra apprendre à utiliser les outils qui sont installés si on ne les connaît pas. Je pense notamment à git et VSCodium dont la description détaillée de l’utilisation sort du cadre de ce simple billet de blog. Et pour travailler sur le code de YesWiki il faudra également se former à quelques langages de programmation si on ne les maîtrise pas déjà : PHP, javascript, CSS, SQL, twig, ...
Pour cela, si ce n’est pas déjà le cas, il faut tout d’abord se créer un compte sur GitHub et générer une clé ssh sur son poste de travail, avec la commande
La récupération du code source depuis GitHub se fera avec l’utilitaire git qui s’installe sous Debian avec la commande
Pour que vous soyez correctement identifié comme auteurice de vos commits git il faut le configurer avec les commandes suivantes (en tant que user normal cette fois, pas en tant que root) :
Et pendant qu’on en est à configurer git, il-y-a un autre paramètre qui peut être défini pour se simplifier la vie :
Maintenant que git est installé et configuré on peut récupérer le code source du coeur de YesWiki et de ses extensions avec le script de MrFlos en exécutant les commandes suivantes dans un terminal (en tant que user normal, pas en tant que root) :
Là, si vous avez bien regardé le contenu du script vous avez dû noter qu’à la fin il récupère des dépots de la forge personnelle de MrFlos et un dépôt de l’organisation des Colibris sur framagit dont vous n’avez probablement pas besoin et auquels vous n’avez probablement pas accès en écriture. Il vaut donc mieux supprimer cette partie du script avant de l’exécuter en l’ouvrant dans son éditeur préféré, qui est nano dans mon cas :
On peut ensuite rendre le script exécutable et le lancer :
Si tout s’est bien passé, vous devriez voir toutes les copies locales des dépôts du code YesWiki dans le dossier
Et, dans le code du coeur de YesWiki, vous devriez trouver des liens symboliques qui ont été créés vers les extensions (dans ~/Developpements/yeswiki/tools/) :
On va supprimer trois de ces liens symboliques parce que les extensions correspondantes posent des soucis au moment où j’écris ces lignes :
Pour installer VSCodium, exécutez les commandes suivantes dans un terminal en tant que root :
Vous pouvez ensuit lancer VSCodium et y installer quelques extensions bien utiles pour développer en PHP, comme celle qu’on peut voir sur cette copie d’écran :
Il suffit ensuite d’ouvrir le dossier du code de YesWiki (~/Developements/yeswiki), ou celui d'une extension, avec le raccourci clavier
Puis on lance le client mysql en ligne de commande, soit avec la commande
Une fois connecté au serveur MariaDB on exécute les requêtes SQL suivantes pour créer une base de données et un user pour YesWiki (n'oubliez pas de remplacer le mot de passe dans la deuxième requête) :
Pour lancer un serveur web de test, il suffit, dans un terminal en tant qu’utilisateur normal, d’exécuter les commandes suivantes :
Pour lancer un serveur web de test, il suffit, dans un terminal en tant qu’utilisateur normal, d’exécuter les commandes suivantes :
Une fois le serveur web démarré, l’instance de test de YesWiki devrait être accessible dans un navigateur web à l’adresse
Pour que les extentions yeswiki qui ont été installée par le script de MrFlos soient bien active il faut aller naviguer sur la page
Les explications que je donne ici sont faites pour un poste de travail sous Debian GNU/Linux. Ça peut être une machine virtuelle comme moi ou un poste de travail classique sur un ordinateur portable ou fixe. Si vous êtes sur un système d’exploitation différent il vous faudra peut-être adapter certaines parties. J’essaye de donner des instructions suffisamment détaillées pour que n’importe qui soit capable de les suivre. Mais pour ensuite utiliser cet environnement il faudra apprendre à utiliser les outils qui sont installés si on ne les connaît pas. Je pense notamment à git et VSCodium dont la description détaillée de l’utilisation sort du cadre de ce simple billet de blog. Et pour travailler sur le code de YesWiki il faudra également se former à quelques langages de programmation si on ne les maîtrise pas déjà : PHP, javascript, CSS, SQL, twig, ...
1. Accès au code source de YesWiki sur GitHub avec git
La première étape pour travailler sur le code source de YesWiki est de pouvoir récupérer une copie locale des dépôts du code source en local sur son poste de travail et de pouvoir pousser ses modifications sur GitHub.Pour cela, si ce n’est pas déjà le cas, il faut tout d’abord se créer un compte sur GitHub et générer une clé ssh sur son poste de travail, avec la commande
ssh-keygen -t ed25519 dans un terminal. Et il faut ensuite ajouter dans son compte GitHub la clé publique qui a été générée, en allant dans les paramètres de son compte, section "clés SSH et GPG". (la clé publique à ajouter devrait se trouver dans le fichier ~/.ssh/id_ed25519.pub si on a utilisé le nom de clé par défaut proposé par ssh-keygen)La récupération du code source depuis GitHub se fera avec l’utilitaire git qui s’installe sous Debian avec la commande
apt-get install git (il faut bien sûr exécuter cette commande en tant que root, soit en ajoutant sudo devant si vous utilisez sudo, soit en étant devenu root avant, avec la commande su - si vous êtes «old school» comme moi.)Pour que vous soyez correctement identifié comme auteurice de vos commits git il faut le configurer avec les commandes suivantes (en tant que user normal cette fois, pas en tant que root) :
git config --global user.name "Votre nom ou pseudo" git config --global user.email "votre.email@votre-domaine.tld"
Et pendant qu’on en est à configurer git, il-y-a un autre paramètre qui peut être défini pour se simplifier la vie :
git config --global pull.rebase true
2. Installation de PHP et de quelques autres outils nécessaires au développement de YesWiki
En tant que root, executer les commandes suivantes pour installer PHP, composer et symfony :
apt-get install libnss3-tools php-common php-fpm php-curl php-gd php-json php-mysql php-xml php-mbstring php-zip php-json curl jq -y
curl -1sLf 'https://dl.cloudsmith.io/public/symfony/stable/setup.deb.sh' | sudo -E bash
apt install symfony-cli
symfony server:ca:install
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
mv composer.phar /usr/local/bin/composer
chmod +x /usr/local/bin/composer
3. Récupération d’une copie locale du code source de YesWiki
Notes :- si votre compte est membre de l’organisation GitHub de YesWiki vous pourrez travailler directement sur les dépôts officiels, comme dans les instructions que je donne. Si ce n’est pas le cas il faudra vous faire des forks des dépôts sur GitHub et adapter ce que j’explique pour travailler sur ces forks (voir la documentation de GitHub)
- je décris comment récupérer une copie locale des différents dépôts de code source de YesWiki et les lier entre eux en utilisant un script développé par MrFlos. Comme à chaque fois qu’on vous dit d’exécuter sur votre ordinateur un script téléchargé sur internet, il est fortement recommandé de bien examiner le contenu de ce script pour bien comprendre ce qu’il va faire et pour vérifier qu’il ne contient pas de code malveillant.
Maintenant que git est installé et configuré on peut récupérer le code source du coeur de YesWiki et de ses extensions avec le script de MrFlos en exécutant les commandes suivantes dans un terminal (en tant que user normal, pas en tant que root) :
mkdir Developpements wget https://forge.mrflos.pw/mrflos/nixos-config/raw/branch/main/scripts/init_yeswiki_repos.sh less init_yeswiki_repos.sh
Là, si vous avez bien regardé le contenu du script vous avez dû noter qu’à la fin il récupère des dépots de la forge personnelle de MrFlos et un dépôt de l’organisation des Colibris sur framagit dont vous n’avez probablement pas besoin et auquels vous n’avez probablement pas accès en écriture. Il vaut donc mieux supprimer cette partie du script avant de l’exécuter en l’ouvrant dans son éditeur préféré, qui est nano dans mon cas :
nano init_yeswiki_repos.sh
On peut ensuite rendre le script exécutable et le lancer :
chmod +x init_yeswiki_repos.sh ./init_yeswiki_repos.sh
Si tout s’est bien passé, vous devriez voir toutes les copies locales des dépôts du code YesWiki dans le dossier
~/Developpements : Et, dans le code du coeur de YesWiki, vous devriez trouver des liens symboliques qui ont été créés vers les extensions (dans ~/Developpements/yeswiki/tools/) :
On va supprimer trois de ces liens symboliques parce que les extensions correspondantes posent des soucis au moment où j’écris ces lignes :
cd ~/Developpements/yeswiki rm tools/markdown # extension obsolète rm tools/loginldap # nécessite d’avoir un serveur LDAP et d’être configuré pour pouvoir être utilisée rm tools/lang/yeswiki-extension-lang # extension obsolète
4. Installation de VSCodium
J’ai choisi d’utiliser VSCodium pour mon environnement de développement. Mais vous être libre d’utiliser autre chose.Pour installer VSCodium, exécutez les commandes suivantes dans un terminal en tant que root :
curl -fSsL https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/master/pub.gpg | sudo gpg --dearmor | sudo tee /usr/share/keyrings/vscodium.gpg >/dev/null echo "deb [arch=amd64 signed-by=/usr/share/keyrings/vscodium.gpg] https://download.vscodium.com/debs vscodium main" | sudo tee /etc/apt/sources.list.d/vscodium.list apt update apt install codium
Vous pouvez ensuit lancer VSCodium et y installer quelques extensions bien utiles pour développer en PHP, comme celle qu’on peut voir sur cette copie d’écran :
Il suffit ensuite d’ouvrir le dossier du code de YesWiki (~/Developements/yeswiki), ou celui d'une extension, avec le raccourci clavier
Ctrl-K + Ctrl-O (ou en utilisant le menu) pour commencer à coder.5. Installation de MariaDB et création d’une base de donnée pour YesWiki
Pour pouvoir faire tourner une version de test de YesWiki sur son environnement de développement il faut une base de données. On installe MariaDB avec les commandes suivantes, dans un terminal en tant que root :apt install mariadb-server mysql_secure_installation
Puis on lance le client mysql en ligne de commande, soit avec la commande
mysql en tant que root soit avec la commande mysql -u root -p en tant que user normal, en fonction des choix qu’on a faits pour répondre aux questions de mysql_secure_installation.Une fois connecté au serveur MariaDB on exécute les requêtes SQL suivantes pour créer une base de données et un user pour YesWiki (n'oubliez pas de remplacer le mot de passe dans la deuxième requête) :
CREATE DATABASE yeswiki; CREATE USER 'yeswiki' IDENTIFIED BY 'mettre ici son mot de passe préféré !!!'; GRANT ALL PRIVILEGES ON yeswiki.* TO 'yeswiki';
6. Configurer TLS pour le serveur web de test
Pour lancer un serveur web de test, il suffit, dans un terminal en tant qu’utilisateur normal, d’exécuter les commandes suivantes :
cd ~/Developpements/yeswiki symfony server:ca:install
6. Lancer un serveur web de test
Pour lancer un serveur web de test, il suffit, dans un terminal en tant qu’utilisateur normal, d’exécuter les commandes suivantes :
cd ~/Developpements/yeswiki symfony server:start
Une fois le serveur web démarré, l’instance de test de YesWiki devrait être accessible dans un navigateur web à l’adresse
https://127.0.0.1:8000 et devrait afficher le formulaire d’installation de YesWiki. Il suffit d’y renseigner les champs MySQL database name, MySQL username, MySQL password, Administrator, Password, Password confirmation et Email address puis de valider pour finir de la configurer. Une fois fait, vous devriez vous retrouver devant la page principale par défaut de YesWiki : Pour que les extentions yeswiki qui ont été installée par le script de MrFlos soient bien active il faut aller naviguer sur la page
https://127.0.0.1:8000/?PagePrincipale/update




