Comment installer le CMS Textpattern avec Nginx sur Debian 10
Textpattern est un système de gestion de contenu PHP gratuit et open-source. Il est plutôt léger, rapide et facile à utiliser tout en offrant une personnalisation décente grâce à des thèmes et des plugins. Dans ce guide, nous allons installer Textpattern sur une instance fraîche de Debian 10.
Exigences
- Un système Debian 10 frais sur lequel tu as accès à l’utilisateur root ou à tout utilisateur ayant les privilèges sudo.
- Un nom de domaine enregistré pointant vers ton serveur.
Si tu es connecté en tant qu’utilisateur sudo, passe en tant que root pour cette configuration :
sudo su -
Définis la variable d’environnement $VISUAL sur un éditeur de texte de ta préférence. Par exemple, pour utiliser nano :
echo "export VISUAL=nano" >> ~/.profile . ~/.profile
Étape 1 : Installer les logiciels requis.
Mets à jour le cache des paquets sur ton système :
apt update
Puis installe Nginx, PHP-FPM, les extensions PHP requises, MariaDB et certbot :
apt install -y nginx mariadb-server php-fpm php-xml php-mysql php-json php-mbstring php-zip certbot
Assure-toi que les services Nginx et MariaDB sont activés et fonctionnent :
systemctl enable --now nginx.service mariadb.service
Étape 2 : Téléchargement de Textpattern
Copie le lien de téléchargement (au format .tar.gz) de la dernière version de textpattern à partir de leurs Releases sur Github et télécharge-le sur ton serveur avec wget comme suit :
wget https://github.com/textpattern/textpattern/releases/download/4.7.3/textpattern-4.7.3.tar.gz
Décompresse ensuite l’archive et déplace son contenu dans un emplacement situé dans le répertoire webroot :
tar -xzf textpattern*.tar.gz rm textpattern*.tar.gz mv textpattern* /var/www/html/textpattern
Étape 3 : Configuration de la base de données
Commence par exécuter le script mysql_secure_installation pour effectuer des améliorations de sécurité de base :
mysql_secure_installation
Réponds aux questions comme indiqué ci-dessous et assure-toi de choisir un mot de passe sécurisé pour l’utilisateur root :
Enter current password for root (enter for none):Set root password? [Y/n] y New password: your_password Re-enter new password: your_password 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
Ensuite, nous allons créer une base de données et un utilisateur qui seront utilisés par Textpattern. Connecte-toi au shell MySQL avec :
mysql -u root -p
Saisis ton mot de passe root, puis lance les instructions suivantes. Veille à remplacer textpattern_user_password par un mot de passe approprié.
MariaDB [(none)]> CREATE DATABASE textpattern_db; MariaDB [(none)]> CREATE USER textpattern_user IDENTIFIED BY 'textpattern_user_password'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON textpattern_db.* TO textpattern_user; MariaDB [(none)]> \q
Étape 4 : Configuration de Nginx
Tout d’abord, obtiens un certificat SSL pour ton domaine en exécutant la commande suivante :
certbot certonly --webroot --webroot-path /var/www/html -d "your_domain" -m "[email protected]"
En supposant que ton domaine est correctement configuré, certbot obtiendra automatiquement un certificat que nous utiliserons pour configurer HTTPS.
Ensuite, désactive le fichier de configuration du serveur Nginx par défaut :
rm /etc/nginx/sites-enabled/default
Puis ouvre un nouveau fichier de configuration sous /etc/nginx/sites-available:
$VISUAL /etc/nginx/sites-available/textpattern
Et entre la configuration sensible suivante, en remplaçant ton_domaine par ton nom de domaine :
server { listen 80; #replace your_domain below server_name your_domain; return 301 https://$server_name$request_uri; } server { listen 443 ssl; #replace your_domain below server_name your_domain; root /var/www/html/textpattern; index index.php; ssl on; #replace your_domain below ssl_certificate /etc/letsencrypt/live/your_domain/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/your_domain/privkey.pem; location ~* \.php$ { fastcgi_pass unix:/run/php/php7.3-fpm.sock; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; } }
Note que cette configuration redirigera toutes les requêtes HTTP vers HTTPS. Tu voudras peut-être la modifier si tu as des préférences ou des exigences spécifiques. Une fois que tu en es satisfait, crée un lien symbolique dans le répertoire sites-enabled:
ln -s /etc/nginx/sites-available/textpattern /etc/nginx/sites-enabled/
Vérifie ensuite s’il y a des erreurs de syntaxe avec :
nginx -t
Enfin, lance la commande suivante pour charger la nouvelle configuration :
systemctl reload nginx.service
Étape 5 : Configuration de Textpattern
Ton installation Textpattern devrait maintenant être accessible mais n’est pas encore configurée. Accède à https://your_domain/textpattern/setup/ pour lancer le programme d’installation Web. Après avoir choisi une langue, entre les détails de la base de données :
- Nom d’utilisateur MySQL : textpattern_user
- Mot de passe MySQL : Entre le mot de passe choisi pour textpattern_user à l’étape 2.
- Serveur MySQL : localhost
- Base de données MySQL : textpattern_db
- Préfixe de table : laisse vide
Le programme d’installation vérifiera les informations d’identification de la base de données saisies avant de générer la configuration correspondante. Crée le fichier requis :
$VISUAL /var/www/html/textpattern/textpattern/config.php
Colle la configuration générée, enregistre le fichier et quitte. Passe à l’étape suivante de l’installateur Web, où il te sera demandé d’entrer les informations pour le compte administrateur CMS et la configuration du site. Une fois que c’est fait, supprime le répertoire d’installation:
rm -rf /var/www/html/textpattern/textpattern/setup
Et donne à l’utilisateur système Nginx la propriété des répertoires auxquels Textpattern doit avoir accès en écriture :
chown -R www-data /var/www/html/textpattern/{files,images,themes}
Ton site Textpattern est maintenant prêt à être utilisé. L’interface d’administration est accessible à l’adresse https://your_domain/textpattern.