Comment installer BookStack Documentation Wiki sur CentOS 7

BookStack est une plateforme open source pour créer du contenu de documentation/wiki pour ton projet. Elle a été écrite dans le langage de programmation PHP et utilise le cadre web Laravel. En principe, la documentation/wiki de ton projet sera stockée sur BookStack sous forme de « Livre », suivi de « Chapitre » et de « Pages ». Cela te permet de créer et de lire plus facilement la documentation sous forme de Livre, en fonction du Chapitre et des Pages.

Dans ce tutoriel, je vais te montrer étape par étape comment installer et configurer BookStack sur CentOS 7 sous la pile LEMP (Linux, Nginx, PHP-FPM, MySQL/MariaDB). Ce tutoriel abordera des sujets tels que l’installation de PHP Composer et la création de la base de données MySQL à l’aide de la ligne de commande.

Conditions préalables

  • CentOS 7
  • Privilèges de racine

Ce que nous allons faire

  1. Installer le référentiel EPEL
  2. Installer Nginx
  3. Installer et configurer PHP-FPM
  4. Installer et configurer MySQL/MariaDB
  5. Installer PHP Composer
  6. Installer BookStack
  7. Configurer l’hôte virtuel Nginx BookStack
  8. Tester

Étape 1 – Installer le référentiel EPEL

Ajoute le nouveau référentiel tiers au système. Nous devons ajouter le dépôt EPEL (Extra Packages for Enterprise Linux) à notre système CentOS 7, afin de pouvoir installer Nginx et d’autres paquets.

Installe le dépôt EPEL à l’aide de la commande yum ci-dessous.

sudo yum -y install epel-release

Étape 2 – Installer Nginx sur CentOS 7

Dans ce tutoriel, nous allons exécuter la plateforme ‘BookStack’ sous la pile LEMP et nous allons installer le serveur Web Nginx à partir du dépôt EPEL.

Installe le serveur Web Nginx à l’aide de la commande yum ci-dessous.

sudo yum -y install nginx

Une fois l’installation terminée, démarre le service et active-le pour qu’il se lance chaque fois au démarrage du système.

systemctl start nginx
systemctl enable nginx

Maintenant, vérifie-le à l’aide de la commande netstat.

netstat -plntu

Assure-toi que le port 80 figure dans la liste et qu’il est utilisé par le service Nginx.

Installe Nginx

Le serveur Web Nginx est maintenant installé sur le système CentOS 7.

Supplémentaire : Si tu exécutes firewalld sur ton système, ajoute un nouveau service HTTP à la configuration en exécutant les commandes ci-dessous.

firewall-cmd --add-service=http --permanent
firewall-cmd --reload

Étape 3 – Installer PHP et PHP-FPM

Dans cette étape, nous allons installer et configurer PHP-FPM 7.0. Nous allons installer PHP et PHP-FPM à partir du dépôt ‘webtatic’ – installe PHP avec certaines extensions nécessaires à la plateforme ‘BookStack’, notamment PDO, Tokenizer, GD, Tidy, MBString et OpenSSL.

Avant d’installer PHP et PHP-FPM, ajoute le nouveau dépôt ‘webtatic’ au système CentOS 7 à l’aide de la commande rpm ci-dessous.

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Installe maintenant PHP et PHP-FPM avec toutes les extensions nécessaires à l’aide de la commande yum de la manière suivante.

sudo yum -y install php70w-fpm php70w-mcrypt php70w-curl php70w-cli php70w-mysql php70w-gd php70w-xsl php70w-json php70w-intl php70w-pear php70w-devel php70w-common php70w-mbstring php70w-tidy php70w-zip php70w-soap curl

Une fois l’installation terminée, nous devons modifier le fichier de configuration ‘php.ini’ et modifier la configuration du pool php-fpm ‘www.conf’.

Modifie le fichier de configuration ‘php.ini’ à l’aide de l’éditeur vim.

vim /etc/php.ini

Décommente la ligne ‘cgi.fix_pathinfo’ et change la valeur en ‘0’.

cgi.fix_pathinfo=0

Sauvegarde et quitte.

Ensuite, modifie le fichier de configuration du pool ‘www.conf’.

vim /etc/php-fpm.d/www.conf

Change l’utilisateur par défaut pour exécuter le service PHP-FPM en utilisant l’utilisateur et le groupe ‘nginx’.

user = nginx
group = nginx

Sur la ligne ‘listen’, modifie la valeur du fichier sock comme ci-dessous. Nous allons exécuter PHP-FPM sous le fichier sock.

listen = /var/run/php-fpm/php-fpm.sock

Maintenant, pour la configuration de la permission et du propriétaire du socket. Décommente ces lignes et modifie les valeurs comme ci-dessous.

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

Enfin, décommente l’environnement PHP-FPM.

env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

Sauvegarde et quitte.

Si la configuration est terminée, démarre le service PHP-FPM et active-le pour qu’il se lance à chaque fois au démarrage.

systemctl start php-fpm
systemctl enable php-fpm

Maintenant, vérifie-le à l’aide de la commande netstat.

netstat -pl | grep php

Et vérifie que tu as bien le fichier sock de PHP-FPM.

Configuration de php.ini

PHP et PHP-FPM 7.0 avec toutes les extensions nécessaires à la plateforme ‘BookStack’ ont été installés sur le système CentOS 7.

Étape 4 – Installation et configuration de MySQL/MariaDB

BookStack ne prend en charge que la base de données MySQL, et il ne fonctionnera que sous la version MySQL >= 5.6. Pour ce tutoriel, nous utiliserons MariaDB (dernière version) qui peut être installée à partir du dépôt Ubuntu.

Exécute la commande yum ci-dessous pour installer la base de données MariaDB.

yum install -y mariadb mariadb-server

Une fois l’installation terminée, démarre le service et active-le pour qu’il se lance à chaque fois au démarrage.

systemctl start mariadb
systemctl enable mariadb

Nous devons maintenant configurer le mot de passe ‘root’ pour la base de données.

Exécute la commande ci-dessous pour configurer le mot de passe ‘root’ de la base de données.

mysql_secure_installation

Configure MariaDB

Il te sera demandé le nouveau mot de passe MySQL root – tape ton mot de passe pour l’utilisateur root et appuie sur Entrée. Pour les autres, tape simplement ‘Y’ pour oui et appuie de nouveau sur Entrée.

Set root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Le mot de passe root MySQL est maintenant configuré.

Ensuite, nous devons créer une nouvelle base de données MySQL pour l’installation de BookStack. Nous allons créer une nouvelle base de données nommée ‘bookstackdb’ avec l’utilisateur ‘bookstak’ et le mot de passe ‘[email protected]’.

Connecte-toi au shell MySQL avec l’utilisateur root.

mysql -u root -p

Exécute toutes les requêtes MySQL ci-dessous sur le shell.

create database bookstackdb;
create user [email protected] identified by '[email protected]';
grant all privileges on bookstackdb.* to [email protected] identified by '[email protected]';
flush privileges;
exit;

Crée une base de données dans MariaDB pour BookStack

MySQL/MariaDB a été installé sur le système CentOS 7 et la base de données pour l’installation de ‘BookStack’ a été créée.

Étape 5 – Installer PHP Composer sur CentOS 7

Le compositeur est un gestionnaire de dépendances pour PHP. Il te permet de gérer les dépendances PHP dont tu as besoin pour ton projet. Dans cette étape, nous allons installer le Composer à l’aide du script d’installation. Le Composer sera utilisé pour télécharger toutes les bibliothèques PHP nécessaires à ‘BookStack’.

Va dans ton répertoire personnel et télécharge le script d’installation à l’aide de curl.

cd ~/
curl -sS https://getcomposer.org/installer | php

Tu obtiendras le fichier ‘composer.phar’ dans ton répertoire personnel. Déplace le fichier dans le répertoire ‘/usr/bin’ et essaie la commande ‘composer’ comme indiqué ci-dessous.

mv composer.phar /usr/bin/composer
composer -v

Tu obtiendras la version de composer qui est installée sur ton système.

Installer PHP Composer

Le compositeur PHP est maintenant installé sur le système CentOS 7.

Étape 6 – Installe BookStack sur CentOS 7

Dans cette étape, nous allons installer BookStack dans le répertoire ‘/var/www’ – ce répertoire sera le répertoire racine de l’application.

Avant d’installer BookStack, installe git sur ton système.

yum -y install git

Crée maintenant un nouveau répertoire ‘/var/www’.

mkdir -p /var/www

Va dans ce répertoire et clone le code source de BookStack à l’aide de la commande git.

cd /var/www
git clone https://github.com/BookStackApp/BookStack.git --branch release --single-branch

Va dans le répertoire ‘BookStack/’ et installe toutes les dépendances PHP nécessaires en utilisant la commande composer comme indiqué ci-dessous.

cd BookStack/
composer install

Vérifie que tu n’obtiens aucune erreur et quand c’est terminé. Tu verras le résultat comme ci-dessous.

Installe BookStack avec Composer

Copie maintenant le fichier de configuration de l’environnement ‘.env.example’ et modifie-le en utilisant vim.

cp .env.example .env
vim .env

Sur la ligne des détails de la base de données, change tout avec les infos de ta base de données comme indiqué ci-dessous.

# Database details
DB_HOST=localhost
DB_DATABASE=bookstackdb
DB_USERNAME=bookstack
[email protected]

Sauvegarde et quitte.

Et change les droits de propriété du répertoire ‘BookStack’ pour l’utilisateur et le groupe ‘nginx’.

chown -R nginx:nginx /var/www/BookStack

Ensuite, nous devons générer la clé d’application unique pour BookStack et mettre à jour le schéma de la base de données à l’aide des commandes PHP artisanales.

Dans le répertoire racine de l’application ‘/var/www/BookStack’, exécute les commandes suivantes.

php artisan key:generate
php artisan migrate

Il te sera demandé de confirmer, tape ‘oui’ et appuie sur Entrée.

PHP artisan

Attends que la migration de la table soit réussie.

L’application BookStack a été installée, avec l’application de la clé unique secrète générée et le schéma de base de données pour BookStack mis à jour.

Étape 7 – Configurer l’hôte virtuel Nginx pour BookStack

Dans cette étape, nous allons configurer l’hôte virtuel nginx pour BookStack. Nous utiliserons ‘book.hakase-labs.co’ comme nom de domaine pour notre URL BookStack.

Va dans le répertoire ‘/etc/nginx’ et crée un nouveau fichier d’hôte virtuel ‘bookstack.conf’ dans le répertoire ‘conf.d/’ en utilisant l’éditeur vim.

cd /etc/nginx
vim conf.d/bookstack.conf

Colle la configuration ci-dessous.

server {
  listen 80;
  server_name book.hakase-labs.co;
  root /var/www/BookStack/public;

  access_log  /var/log/nginx/bookstack_access.log;
  error_log  /var/log/nginx/bookstack_error.log;

  client_max_body_size 1G;
  fastcgi_buffers 64 4K;

  index  index.php;

  location / {
    try_files $uri $uri/ /index.php?$query_string;
  }

  location ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README) {
    deny all;
  }

  location ~ \.php(?:$|/) {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
  }

  location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
    expires 30d;
    access_log off;
  }
}

Sauvegarde et quitte.

Maintenant, teste la configuration de nginx et assure-toi qu’il n’y a pas d’erreur, puis redémarre le service nginx.

nginx -t
systemctl restart nginx

L’hôte virtuel Nginx pour l’application BookStack a été créé et activé.

Configurer l'hôte virtuel Nginx

Étape 8 – Test

Ouvre ton navigateur Web et tape l’URL de BookStack dans la barre d’adresse, la mienne est :http://book.hakase-labs.co/

Tu seras redirigé vers la page ‘login/’ comme ci-dessous.

Connexion à BookStack

Saisis l’utilisateur admin par défaut ‘[email protected]’ avec le mot de passe ‘password’, puis appuie sur le bouton ‘Login’.

Tu devrais obtenir le tableau de bord de l’utilisateur BookStack.

Tableau de bord

Clique sur le menu ‘Paramètres’ et tu obtiendras la page des paramètres.

Paramètres

Clique maintenant sur ‘Utilisateurs’, puis sur l’utilisateur ‘Admin’. Change l’email par défaut par ton adresse email et le mot de passe par ton propre mot de passe secret.

Utilisateurs de BookStack

Puis clique sur le bouton « Enregistrer ».

L’installation de BookStack avec la pile LEMP (Linux, Nginx, MariaDB et PHP-FPM) sur CentOS 7 a été effectuée avec succès.

Référence

Vous aimerez aussi...