Ceci est un petit tuto pour installer Flarum sur un serveur Debian.

Installation des dépendences

Tout d'abord il faut installer les dépendences de flarum

sudo su
apt install -y composer
apt install -y php7.4-fpm php7.4-curl php7.4-dom php7.4-gd php7.4-json php7.4-mbstring php7.4-mysql php7.4-tokenizer php7.4-zip
apt install -y default-mysql-server default-mysql-client
apt install -y nginx
apt install -y letsencrypt

Mise en place du DNS et de HTTPS

Il faut donc créer une nouvelle entrée dans le DNS, voici comment elle se présente :

DomainTTLTypeTarget
talk.domain.tld0Aipv4 address of the server
talk.domain.tld0AAAAipv6 address of the server

Une fois cela fait, on va créer le certificat letsencrypt pour notre nouveau sous-domaine.

systemctl stop nginx
certbot certonly --standalone -d talk.domain.tld
systemctl start nginx

Bien évidement, il ne faut pas oublier de remplacer domain.tld par le véritable nom de domaine :wink:

Installation de Flarum

Ensuite, on va aller dans le dossier /var/www/ pour y installer flarum

mkdir /var/www/flarum/
cd /var/www/flarum/

Et on va y lançer composer pour y installer flarum automatiquement

composer create-project flarum/flarum . --stability=beta

On va ensuite changer les permissions d'accès au dossier

chmod 775 -R .
chown www-data:www-data -R .

Mise en place de la base de donnée

Pour mettre en place mysql (si cela n'a pas été fait avant), il faut utiliser les commandes suivantes

systemctl start mysql
mysql_secure_installation

Et ensuite, on va creér une base de donnée et un utilisateur pour celle-ci.

mysql -u root -p
CREATE DATABASE flarum_db;
CREATE USER flarumuser@localhost IDENTIFIED BY "<some password>";
GRANT ALL PRIVILEGES ON flarum_db.* TO flarumuser@localhost;
FLUSH PRIVILEGES;
EXIT;

Configuration nginx

Enfin, on va créer la configuration nginx.

vim /etc/nginx/sites-available/flarum.conf

Et on va coller la configuration suivante :

server {
	listen 80;
	listen [::]:80;

	server_name talk.domain.tld;

	return 301 https://talk.domain.tld$request_uri;
}

server {
	listen 443 ssl http2;
	listen [::]:443 ssl http2;

	include /var/www/flarum/.nginx.conf;

	root /var/www/flarum/public;

	include /etc/nginx/snippets/letsencrypt.conf;

	index index.php;

	server_name talk.domain.tld;

	location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    }

	ssl_certificate /etc/letsencrypt/live/talk.domain.tld/fullchain.pem;
	ssl_certificate_key /etc/letsencrypt/live/talk.domain.tld/privkey.pem;
	ssl_trusted_certificate /etc/letsencrypt/live/talk.domain.tld/fullchain.pem;

	access_log /var/log/nginx/talk.domain.tld.access.log;
	error_log /var/log/nginx/talk.domain.tld.ovh.error.log;
}

Il ne faut pas oublier de vérifier que les chemins de fichiers existent, et également de customizer la configuration en changeant domain.tld. Un e fois que la configuration est terminée, on peut relançer nginx

ln -s /etc/nginx/sites-available/flarum.conf /etc/nginx/sites-enabled/
nginx -t
systemctl restart nginx

Serveur mail

Flarum a besoin d'un serveur mail pour pouvoir envoyer les mails de confirmations au nouveaux inscrits. Contrairement à ce que je pensais, c'est extrènemenent simple. Il suffit d'installer postfix et de changer quelques configurations.

apt install postfix

Pour la configuration, il suffit de suivre les étapes données par l'installateur. Et d'aller dans le fichier de configuration

vim /etc/postfix/main.cf

Dans ce fichier, en bas, il faut donner la valeur loopback-only à inet-interfaces. Et dans mydestination garder uniquement localhost.

Fin de la configuration en ligne

On peut enfin finir notre configuration en allant sur talk.domain.tld et en remplissant les informations sur l'admin et la base de donnée.

Répondre…