Comment installer BookStack sur Debian 12
BookStack est un logiciel wiki gratuit et open source écrit en PHP avec le framework Web Laravel. BookStack se veut une plateforme simple et auto-hébergée pour stocker et organiser des informations.
Dans ce didacticiel, nous vous guiderons étape par étape tout au long du processus d'installation de BookStack sur le serveur Debian 12 afin que vous puissiez disposer de votre propre plate-forme de type wiki pour publier des informations.
Conditions préalables
Avant de commencer, assurez-vous d'avoir les éléments suivants :
- Un serveur Debian 12.
- Un utilisateur non root avec les privilèges d'administrateur sudo.
- Un nom de domaine pointait vers l'adresse IP du serveur.
Installation des dépendances
BookStack est une plateforme wiki écrite en PHP et MySQL/MariaDB. Pour le moment, il est entièrement pris en charge avec PHP 8.2. Quant à cette étape, vous installerez des dépendances pour BookStack, qui incluent les packages LAMP Stack (Apache2, MariaDB, PHP), Git et Composer.
Mettez à jour et actualisez l'index de votre paquet Debian à l'aide de la commande suivante.
sudo apt update
Une fois le référentiel mis à jour, installez les dépendances du package pour BookStack en exécutant la commande apt install suivante. Avec cette commande, vous installerez le package LAMP Stack, Composer et Git.
sudo apt install apache2 mariadb-server composer curl php php-xml libapache2-mod-php php-fpm php-curl php-mbstring php-ldap php-tidy php-zip php-gd php-mysql git
Tapez y pour procéder à l’installation.
Une fois les dépendances installées, vérifiez chaque dépendance en exécutant la commande suivante.
Vérifiez le service Apache2 via la commande systemctl ci-dessous pour vous assurer que le service est en cours d'exécution et activé.
sudo systemctl is-enabled apache2
sudo systemctl status apache2
La sortie suivante confirmera que le service Apache2 est en cours d'exécution et activé.
Vérifiez maintenant le service mariadb à l'aide de la commande ci-dessous.
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb
La sortie doit indiquer que le service mariadb est en cours d'exécution et activé sur votre système.
Ensuite, vérifiez la version PHP et répertoriez les extensions activées à l’aide de la commande ci-dessous.
php -v
php -m
Sur la base du résultat suivant, PHP 8.2 est installé sur votre système.
Enfin, vérifiez le Composer à l’aide de la commande suivante. Cela localisera le fichier binaire Composer et vérifiera sa version.
which composer
sudo -u www-data composer -v
Vous devriez voir que Composer 2.5.5 est installé sur /usr/bin/composer.
Configuration de PHP
Après avoir installé les dépendances, l'étape suivante consiste à configurer l'installation de PHP en apportant des modifications au fichier php.ini sur votre machine Debian.
Ouvrez la configuration PHP par défaut /etc/php/8.2/apache2/php.ini à l'aide de la commande suivante de l'éditeur nano.
sudo nano /etc/php/8.2/apache2/php.ini
Modifiez certains paramètres par défaut avec la configuration suivante. Assurez-vous d'ajuster les paramètres date.timezone et memory_limit avec votre environnement de serveur.
date.timezone = Europe/Amsterdam
memory_limit = 512M
Enregistrez le fichier et quittez l'éditeur lorsque vous avez terminé.
Exécutez maintenant la commande systemctl suivante pour redémarrer le service apache2 et appliquer les modifications que vous avez apportées.
sudo systemctl restart apache2
Configuration du serveur MariaDB
Maintenant que PHP est configuré, l'étape suivante consiste à configurer l'installation du serveur MariaDB à l'aide de l'utilitaire mariadb-secure-installation, qui vous permet de configurer la sécurité de base pour MariaDB. Ensuite, vous créerez également une nouvelle base de données et un nouvel utilisateur qui seront utilisés par BookStack.
Exécutez la commande mariadb-secure-installlation suivante pour sécuriser votre installation MariaDB.
sudo mariadb-secure-installation
Au cours du processus, il vous sera demandé certaines configurations. Tapez Y pour accepter et appliquer les nouvelles modifications, ou tapez n pour Non pour rejeter la configuration.
- Pour l'installation par défaut du serveur MariaDB sans mot de passe root, appuyez sur ENTRÉE lorsqu'on vous demande le mot de passe.
- L'authentification locale pour les utilisateurs root de MariaDB est sécurisée par défaut, saisissez « n » lorsqu'on vous demande de changer la méthode d'authentification en « unix_socket ».
- Saisissez « Y » pour créer un nouveau mot de passe root MariaDB. Ensuite, saisissez le mot de passe fort de votre utilisateur root MariaDB et répétez.
- Lorsqu'on vous demande de désactiver l'authentification à distance pour l'utilisateur root MariaDB, saisissez « Y » pour accepter.
- L'installation par défaut du serveur MariaDB est livrée avec le « test » de la base de données et permet à un utilisateur anonyme d'y accéder. Saisissez « Y » pour les deux paramètres afin de supprimer le « test » de la base de données par défaut et de supprimer le privilège anonyme.
- Enfin, saisissez « Y » pour confirmer les privilèges de rechargement de la table.
Après avoir configuré MariaDB, vous créerez une nouvelle base de données MariaDB et un nouvel utilisateur qui seront utilisés par BookStack via la commande client mariadb.
Connectez-vous au serveur MariaDB à l'aide de la commande mariadb suivante. Saisissez votre mot de passe root MariaDB lorsque vous y êtes invité.
sudo mariadb -u root -p
Exécutez maintenant les requêtes suivantes pour créer une nouvelle base de données et un nouvel utilisateur pour BookStack. Dans cet exemple, vous allez créer une nouvelle base de données et un utilisateur bookstack, avec le mot de passe p4ssword.
CREATE DATABASE bookstack;
CREATE USER bookstack@localhost IDENTIFIED BY 'p4ssword';
GRANT ALL ON bookstack.* TO bookstack@localhost WITH GRANT OPTION;
FLUSH PRIVILEGES;
Ensuite, exécutez la requête suivante pour vérifier les privilèges de l'utilisateur bookstack.
SHOW GRANTS FOR bookstack@localhost;
Vous devriez voir que l'utilisateur bookstack est autorisé à accéder et à gérer la base de données bookstack qui sera utilisée par BookStack.
Tapez quit pour quitter le serveur MariaDB.
Téléchargement de la bibliothèque
Maintenant que vous avez configuré le serveur PHP et MariaDB, vous êtes prêt à installer BookStack. Dans cette section, vous installerez BookStack via Git et Composer.
Tout d'abord, créez de nouveaux répertoires /var/www/.config et /var/www/.cache qui seront utilisés par Composer pour stocker le cache et la configuration des dépendances. Ensuite, vous devez également remplacer la propriété des deux répertoires par l'utilisateur www-data.
mkdir -p /var/www/{.config,.cache}
sudo chown -R www-data /var/www/{.config,.cache}
Accédez au répertoire /var/www et téléchargez le code source de BookStack dans le répertoire bookstack. Votre répertoire d'installation BookStack doit être /var/www/bookstack.
cd /var/www
git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch bookstack
Maintenant, changez la propriété du répertoire /var/www/bookstack en utilisateur www-data et accédez-y.
sudo chown -R www-data:www-data /var/www/bookstack
cd /var/www/bookstack
Ensuite, copiez le fichier .env.example dans .env et ouvrez le nouveau fichier à l'aide de la commande suivante de l'éditeur nano.
sudo -u www-data cp .env.example .env
sudo -u www-data nano .env
Saisissez votre nom de domaine dans l'option APP_URL et saisissez les détails de votre base de données MariaDB dans les paramètres DB_ ci-dessous.
# The application URL
APP_URL=http://bookstack.hwdomain.io
# Database values also need to be modified
# If you follow previous command, you only need to add your DB_PASSWORD
DB_DATABASE=bookstack
DB_USERNAME=bookstack
DB_PASSWORD=p4ssword
Enregistrez et fermez le fichier lorsque vous avez terminé.
Ensuite, exécutez la commande suivante pour installer les dépendances PHP via Composer.
sudo -u www-data composer install --no-dev --no-plugins
Pendant l'installation, la sortie suivante sera affichée.
Une fois les dépendances PHP installées, exécutez la commande suivante pour générer la clé secrète et migrer la base de données.
sudo -u www-data php artisan key:generate --no-interaction --force
sudo -u www-data php artisan migrate --no-interaction --force
La clé secrète du fichier .env sera mise à jour et vous trouverez ci-dessous le processus lors de la migration de la base de données.
Une fois que tout est terminé, exécutez la commande suivante pour remplacer la propriété de certains répertoires par l'utilisateur www-data et vous assurer que ces répertoires sont accessibles en écriture.
sudo chown www-data:www-data -R bootstrap/cache public/uploads storage
sudo chmod u+rw bootstrap/cache public/uploads storage
Enfin, exécutez la commande ci-dessous pour modifier l'autorisation du fichier .env en 640. Cela garantira que seul l'utilisateur www-data pourra apporter des modifications au fichier.
sudo chmod -R 640 /var/www/bookstack/.env
Configuration de l'hôte virtuel Apache2
Dans la section suivante, vous allez créer une nouvelle configuration d'hôte virtuel Apache2 qui sera utilisée pour exécuter BookStack. Vous devez donc vous assurer que vous avez préparé votre nom de domaine et qu'il pointe vers l'adresse IP du serveur.
Avant de créer une configuration d'hôte virtuel, exécutez la commande suivante pour activer le module de réécriture sur Apache2.
sudo a2enmod rewrite
Créez maintenant une nouvelle configuration d'hôte virtuel /etc/apache2/sites-available/bookstack.conf à l'aide de la commande suivante de l'éditeur nano.
sudo nano /etc/apache2/sites-available/bookstack.conf
Insérez la configuration suivante et assurez-vous de modifier le nom de domaine dans l'option ServerName. L'exemple suivant utilisera le domaine bookstack.hwdomain.io pour l'installation de BookStack.
<VirtualHost *:80>
ServerName bookstack.hwdomain.io
ServerAdmin webmaster@localhost
DocumentRoot /var/www/bookstack/public/
<Directory /var/www/bookstack/public/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
</Directory>
ErrorLog ${APACHE_LOG_DIR}/bookstack-error.log
CustomLog ${APACHE_LOG_DIR}/bookstack-access.log combined
</VirtualHost>
Enregistrez et fermez le fichier lorsque vous avez terminé.
Ensuite, exécutez la commande suivante pour activer le fichier hôte virtuel bookstack.conf et vérifiez votre syntaxe Apache2.
sudo a2ensite bookstack.conf
sudo apachectl configtest
Si vous utilisez une syntaxe appropriée, le résultat "Syntaxe OK" sera imprimé sur votre terminal.
Enfin, exécutez la commande systemctl ci-dessous pour redémarrer le service aapche2 et appliquer les modifications que vous avez apportées.
sudo systemctl restart apache2
Sécuriser Bookstack avec des certificats SSL/TLS
Dans ce guide, vous sécuriserez BookStack avec des certificats SSL/TLS, qui peuvent être générés à partir de Letsencrypt via l'outil Certbot.
Installez Certbot et le plugin Certbot Apache via la commande apt install ci-dessous. Tapez y pour confirmer et procéder à l’installation.
sudo apt install certbot python3-certbot-apache
Exécutez maintenant la commande certbot ci-dessous pour générer des certificats SSL/TLS et sécuriser votre installation BookStack. Assurez-vous de modifier le nom de domaine et l'adresse e-mail dans la commande suivante.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email -d bookstack.hwdomain.io
Une fois le processus terminé, vos certificats SSL/TLS seront disponibles dans le répertoire /etc/letsencrypt/live/bookstack.hwdomain.io. De plus, votre installation BookStack sera automatiquement configurée avec HTTPS, qui est configuré via le plugin Certbot Apache.
Accéder à la bibliothèque
À ce stade, tout est configuré et votre installation BookStack est terminée. Vous pouvez maintenant accéder à votre installation BookStack.
Lancez votre navigateur Web et visitez le nom de domaine de votre installation BookStack, tel que https://bookstack.hwdomain.io/, et vous serez redirigé vers la page de connexion BookStack.
Saisissez l'adresse e-mail par défaut [email et le mot de passe est mot de passe, puis cliquez sur Connexion.
En cas de succès, vous devriez voir le tableau de bord BookStack comme suit :
Conclusion
Pour conclure, vous avez installé avec succès BookStack sur le serveur Debian 12, étape par étape. Vous avez installé BookStack via Git, Composer et avec les packages LAMP Stack (Apache2, MariaDB et PHP). Vous avez également sécurisé BookStack avec les certificats SSL/TLS de Letsencrypt. À partir de là, vous pouvez désormais renseigner vos informations et créer votre propre documentation.