Avertissement

En l'état actuel, l'installation de BlogThèque nécessite des compétances en webmastering.

Préconisations

Je préconise un serveur avec :

  • Apache
  • PHP 8.xx
  • MySql 8.xx
  • 50 Go d'espace disque
  • 8 Go de RAM
  • 2 coeurs minimum

A noter que cette configuration sera suffisante pour héberger une cinquantaine de sites à faible ou moyen traffic.

Vérifications

Faites une mise à jour de votre système.

sudo apt-get update
sudo apt-get upgrade

Vérifier que les modules PHP suivants sont bien installés :

sudo apt install php-curl php-gd php-intl php-json php-mbstring php-xml php-zip

Vérifier que pour Apache, Modrewrite est acitf (pour le fonctionnement du fichier .htaccess) :

sudo a2enmod rewrite
sudo systemctl restart apache2

Vérifier que Let's Encrypt est bien installé pour pouvoir générer des certificat SSL gratuits :

sudo apt install certbot python3-certbot-apache

et que le port 443 est bien ouvert sur le firewall :

sudo ufw allow 'Apache Full'

Prévoir un serveur stmp avec le login et mot de passe pour pouvoir envoyer des messages à partir de votre site.

Traitement des fichiers PDF

Afin de transformer les pages des fichiers PDF en images pour la visionneuse, il est nécessaire d'installer imagick.

sudo apt install php-imagick

après l'installation, éditer le fichier de configuration :

sudo nano /etc/ImageMagick-6/policy.xml

et remplacer 

<policy domain="coder" rights="none" pattern="PDF" />

par

<policy domain="coder" rights="read | write" pattern="PDF" />

Redémarrer Apache pour la prise en compte :

sudo systemctl restart apache2

Procéder à l'installation des scripts

Bientôt disponible !


Composer

Composer est un logiciel gestionnaire de dépendances libre qui permet de déclarer et d'installer les bibliothèques dont le projet principal a besoin. 

Dans le répertoire de votre site web, procéder à l'installation de composer :

sudo php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
sudo php -r "unlink('composer-setup.php');"

Création des vignettes de sites web

La fonction annuaire de BlogTheque permet d'effectuer des captures écran de sites web.

1° Installer wget si cela n'a pas déjà été fait.

sudo apt install wget

Puis télécharger le binaire deb de Chrome  :

sudo wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb

puis l'installer :

sudo apt install ./google-chrome-stable_current_amd64.deb

2° puis installer Chrome PHP à partir de composer (dans le répertoire de votre site)

composer require chrome-php/chrome

Paramétrage de PHP

Vous devez modifier la limite de taille des fichiers en upload.

Pour cela, modifier le fichier php.ini situé dans : 

sudo nano /etc/php/8.1/fpm/php.ini

et modifier les paramètres suivants :

upload_max_filesize = 50M
post_max_size = 50M

MySql

Le module de statistiques, pour des raisons de performance, nécessite de modifier certains paramètres de MySql afin de charger en mémoire une table de la base de données.

nano /etc/mysql/conf.d/mysql.cnf

et ajouter les 3 lignes suivantes :

[mysqld]
max_heap_table_size=128M
tmp_table_size=128M

puis redemarrer MySql :

sudo service mysql restart

Cron

Un certain nombre de taches sont exécutées régulièrement à des fins de statistiques et de maintenance.

Dans le répoertoire :

cd /etc/cron.d

avec la commande :

crontab -e

installer les taches suivantes :

0,5,10,15,20,25,30,35,40,45,50,55 * * * * curl https://votresite.com/bt-cron/pays.php
45 4 * * * curl https://votresite.com/bt-cron/sitemap.php
45 1 * * * curl https://votresite.com/bt-cron/purge.php
45 2 * * * curl https://votresite.com/bt-cron/stats_date_id.php

ntfy

BlogThèque utilise ntfy pour envoyer des notifications vers les smatphones et pour la double authentification.

1° Installer ntfy :

https://docs.ntfy.sh/install/

2° Autoriser le port 10025 (ou autre libre de votre choix) sur votre serveur

(par défaut ntfy utilise le port 80 il faut le changer)

sudo ufw allow from any to any port 10025 proto tcp

3° Modifier le fichier de configuration

nano /etc/ntfy/server.yml

avec les valeurs suivantes :

base-url: https://ntfy.votresite.com
listen-http: ":10025"
auth-file: "/var/lib/ntfy/user.db"
auth-default-access: "read-only"
upstream-base-url: "https://ntfy.sh"

redémarrer ntfy :

sudo systemctl restart ntfy

4° créer un utilisateur avec droits admin :

ntfy user add --role=admin nom_utilisateur

5° Le faire fonctionner sur un sous-domaine de votre site :

Créer le fichier .conf pour Apache dans le répertoire :

/etc/apache2/sites-available

créer le fichier de configuration du site :

<VirtualHost *:80>
	ServerName ntfy.votresite.com
	ServerAlias ntfy.votresite.com
ProxyPass / http://localhost:10025/
ProxyPassReverse / http://localhost:10025/
RewriteCond %{SERVER_NAME} =ntfy.votresite.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

5° pemettre l'utilisation du proxy_http

sudo a2enmod proxy_http

6° enregistrer le site :

sudo a2ensite ntfy-votresite-com.conf

redemarrer apache :

systemctl reload apache2

installer le certificat ssl :

sudo certbot --apache

Attention, en cas de mise à jour de ntfy, le fichier server.yml risque d'être écrasé. Refaire alors la configuration.