Overview

Artifact ID: 65a86f5b239f196769553bad737d46e86c4b84f4
Page Name:Installation sous Debian-Ubuntu
Date: 2020-11-10 18:49:55
Original User: bohwaz
Mimetype:text/x-markdown
Parent: b4b79cd666536a64ac7a900f596723718e99629f (diff)
Next b7198c9456b54228677ec7a4278a367e043dc06a
Content

Installation détaillée sous Ubuntu/Debian

Le tuto suivant a été pondu en utilisant Ubuntu et Apache. La plupart des commandes devraient également convenir à toute distribution Linux héritée de Debian.

Prérequis

  • Debian Buster ou supérieur (ne fonctionnera pas avec Stretch ou Jessie !)
  • Ubuntu Bionic (18.04) ou supérieur (ne fonctionnera pas avec Xenial)

Il faut utiliser un sous-domaine de votre site principal.

Pour l'exemple, vous avez un site web accessible sur http://association.fr/ et vous souhaitez accéder à Garradin via http://garradin.association.fr/.

Installer Apache, PHP et de quoi utiliser SQLite

Si vous ne l'avez pas déjà fait, installez le serveur web Apache (si vous l'avez déjà fait, vérifiez au moins que l'extension SQLite3 a été installée, sans quoi php ne pourra pas lire la base de données) :

sudo apt update
sudo apt install apache2 php php-sqlite3 php-intl php-apcu php-cli php-imagick

Télécharger Garradin

Bien évidemment, il vous faut vérifier avant quelle est la dernière version de Garradin. Les téléchargements sont ici : https://fossil.kd2.org/garradin/uvlist

Repérez la dernière version disponible, avec l'extension .deb et copiez le lien dans le presse papier (clic droit sur le lien et "copier l'adresse du lien").

Sur votre serveur web, téléchargez l'archive d'installation et décompressez-là :

sudo wget [coller ici l'adresse URL du fichier .deb de Garradin]
sudo dpkg -i garradin*.deb

Nos fichiers sont en place, il est temps de créer le fichier de configuration qui dira à Apache comment faire le lien entre http://garradin.association.fr et le répertoire /usr/share/garradin. Et ce fichier, on le nomme vHost (ou virtual host) dans la langue obscure des serveurs web.

Créer un vHost pour Apache 2.4 sous Ubuntu/debian

sudo nano /etc/apache2/sites-available/garradin

Copiez-y ce contenu :

<VirtualHost *:80>
    ServerName garradin.association.fr
    DocumentRoot /usr/share/garradin/www

    <Directory /usr/share/garradin/www>
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

Sauvegardez et sortez en faisant CTRL+X.

Si vous préférez utiliser nginx voir la section à la fin de cette page.

Quelques explications

  • ServerName indique l'URL utilisée pour accéder à votre vHost. Comme Garradin a besoin d'un sous domaine pour fonctionner correctement, on indique en fait ici le sous-domaine à utiliser.
  • DocumentRoot indique le chemin dans lequel aller chercher les fichiers du site web. Ici il pointe vers le répertoire www de Garradin et non pas sa racine, c'est tout à fait normal et nécessaire.

Ce qui se trouve dans la balise <Directory> permet de spécifier à apache qu'on veut prendre en compte les .htaccess dont a besoin Garradin pour gérer ses urls.

Activez maintenant votre vHost :

sudo a2ensite garradin
sudo systemctl reload apache2

En production (performances)

Afin d'augmenter les performances du serveur Apache il est recommandé de changer AllowOverride All à AllowOverride None et de recopier à l'intérieur du bloc <VirtualHost> le contenu du fichier www/.htaccess de Garradin. Cela évite à Apache de relire le fichier .htaccess à chaque visite (plus rapide).

Passer Garradin en https

Le HTTPS, c'est le petit cadenas vert à côté de l'url dans Firefox, c'est aussi l'absence du vilain cadenas rouge dans Chrome. Bref, c'est un gage de sécurité qui a deux fonctions :

  • Il garantit que les données échangées entre votre navigateur et le site web sont chiffrées. En effet en http, c'est du texte en clair qui est transmis, donc toutes vos données sur les membres, votre compte et vos mots de passe transitent en clair. Il faut donc sécuriser les échanges avec du https afin de rendre les données échangées illisibles.
  • Il garantit que le site web que vous allez visiter est bien le bon. Ça c'est pour la théorie, puisque personne ne va jamais vérifier qu'un certificat SSL est bien le bon pour le site qu'on veut visiter. Surtout que vous allez voir qu'il est très facile d'obtenir un certificat valide.

Nous allons pour activer le https utiliser LetsEncrypt, un fournisseur gratuit de certificats.

Installez letsencrypt et certbot (l'assistant pour configurer vos vHosts afin qu'ils utilisent letsencrypt) :

sudo apt install letsencrypt
sudo add-apt-repository ppa:certbot/certbot
sudo apt install python-certbot-apache
sudo certbot

Suivez l'assistant :

  • Vous choisissez les domaines que vous voulez mettre en https
  • Vous spécifiez si les connexions en http doivent être redirigées vers le https. Je vous conseille de le faire y compris pour vos autres vHosts vu que les moteurs de recherche ont maintenant tendance à pénaliser les sites qui ne sont pas en https.

Si vous retournez dans le répertoire /etc/apache2/sites-available, vous constaterez que les vHosts pour lesquels vous avez activé le https ont maintenant deux fichiers de conf : celui d'origine pour le http, et un autre suffixé par -le-ssl qui gère le https.

Redémarrez Apache en faisant :

sudo service apache2 restart

Vous devriez à présent pouvoir accéder à Garradin via https://garradin.association.fr !

Configuration avec le serveur web Nginx (alternative)

Substituer l'étape de création du vHost par celle-ci :

Dans un fichier garradin du répertoire /etc/nginx/sites-available insérez :

server {
	listen 80; # Port d'écoute

	root /usr/share/garradin/www; # Remplacer par le chemin adéquat vers le dossier public de garradin

	server_name garradin.mondomain.tld; # Remplacer par votre nom de domaine

	location / {
		try_files $uri $uri/ /_route.php;
		index index.php /_route.php;
	}

	location ~ \.php {
		try_files $uri $uri/ /_route.php;
		include fastcgi.conf;
		fastcgi_pass 127.0.0.1:9000; # Si vous utilisez PHP-FPM (ou autre) en mode TCP et non sur une socket
		# fastcgi_pass unix:/var/run/php/php7.0-fpm-garradin.sock; # Si vous utilisez PHP-FPM en mode socket		
    }
}

Activez ensuite la config en créant un lien :

sudo ln -s /etc/nginx/sites-available/garradin /etc/nginx/sites-enabled/garradin