Initial version of "Installation sous Ubuntu/Debian"







































































































1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
# 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.

Sous Apache, les fichiers du site web se mettent par défaut dans `/var/www/html`. Mais nous allons ici utiliser un sous-domaine de votre site principal.

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

Vous n'allez pas mettre vos fichiers de Garradin dans `/var/html/www` car c'est le site principal et ce serait une bien mauvaise idée de mélanger tous les fichiers.

A la place, vous allez mettre Garradin dans `/var/www/garradin` et paramétrer ensuite le serveur web pour que lorsqu'on tape [http://garradin.association.fr](http://garradin.association.fr), celui-ci aille chercher les fichiers dans `/var/www/garradin`.

## 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

## 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](https://fossil.kd2.org/garradin/uvlist)

Repérez la dernière version disponible, avec l'extension `.tar.bz2` et copiez le lien.

Pour l'exemple, la dernière version de Garradin est la `0.9.0rc-4`. A ce propos, `rc` ou `beta` signifient que ces versions sont encore un peu fraîches et qu'elles peuvent comporter des bugs. Si vous voulez un truc plus fiable, prenez plutôt la version de Garradin plus ancienne et qui n'a pas ces mentions.

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

    cd /var/www
    sudo wget https://fossil.kd2.org/garradin/uv/garradin-0.9.0-rc4.tar.bz2
    sudo tar -xvf garradin-0.9.0-rc4.tar.bz2
   
Vous voilà donc avec un répertoire nommé `garradin-0.9.0-rc4`. Vous n'allez bien évidemment pas conserver ce nom, aussi renommez-le en `garradin`:

    sudo mv garradin-0.9.0-rc4 garradin

Apache (utilisateur Linux `www-data`) doit être propriétaire des fichiers pour pouvoir utiliser Garradin :

    sudo chown -R www-data:www-data /var/www/garradin
   
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 `/var/www/garradin`. Et ce fichier, on le nomme `vHost` 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 :

    <VirttualHost *:80>
        ServerName garradin.association.fr
        DocumentRoot /var/www/garradin/www
       
        <Directory /var/www/garradin>                                                                                                                                                                        
            Options Indexes FollowSymLinks                                                                                                                                                                                
            AllowOverride All                                                                                                                                                                                             
            Require all granted                                                                                                                                                                                           
        </Directory>                                                                                                                                                                                                      
    </VirtualHost>
   
Sauvegardez et sortez en faisant `CTRL`+`X`.

### 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
   
## 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](https://letsencrypt.org), 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 systemctl restart apache2
   
Vous devriez à présent pouvoir accéder à Garradin via [https://garradin.association.fr](https://garradin.association.fr) !