Table des matières

Installation avec Apache2

Cette page décrit l'installation de NoethysWeb servie par un serveur Apache2 (Apache2.4) et hébergeant en plus de NoethysWeb un site institutionnel, cette partie étant optionnelle.

Exigences

Il faut disposer d'un serveur Linux, la démonstration est faite sur Ubuntu 20.04.

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.6 LTS"

Il faut un serveur apache, idéalement en version 2.4

$ apache2 -v
Server version: Apache/2.4.41 (Ubuntu)
Server built:   2023-03-08T17:32:54

Ainsi que les modules suivants :

  1. mod_rewrite
  2. mod_proxy
  3. mod_proxy_http

Enfin il faut python et pip en version récente.

Installation

On commence par installer les paquets nécessaires.

sudo apt install apache2 python3 pip3

Ensuite on va activer les modules nécessaires à Apache2.

sudo a2en mod_rewrite mod_proxy mod_proxy_http

Puis on rédémarre le service

sudo service apache2 reload

Création des répertoires

Il faut créer des répertoires. Dans le cas présent, nous avons 2 répertoires à la racine de /var/www/. Le répertoire site/ contient NoethysWeb et grav/, le site vitrine (Optionnel).

cd /var/www/
mkdir site/
cd site/

Installation de NoethysWeb

Il faut télécharger la dernière version de NoethysWeb

wget https://github.com/Noethys/Noethysweb/archive/refs/heads/main.zip

Une fois le fichier télécharger il suffit d'extraire le contenu depuis le répertoire actuel.

Exemple de fichier (téléchargeable et commenté)

exemple-ssl.conf
<IfModule mod_ssl.c>
    <VirtualHost *:443>
        DocumentRoot /var/www/grav/
        # Gestion des alias sur le serveur
        # Alias pour l'accès au géstionnaire de base de donné MySQL.
        Alias /phpmyadmin /usr/share/phpmyadmin
        # Alias des media et des fichiers statiques de NoethysWeb 
        Alias /media /var/www/site/noethysweb/media
        Alias /static /var/www/site/noethysweb/static
        # Alias de la racine du Site créé avec le CMS GRAV (Optionnel)
        Alias / /var/www/grav/
 
        # ProxyPreserveHost permet de servir NoethysWeb tel qu'il est exposé par Django 
        ProxyPreserveHost On
        # Cette route permet la transmission du captcha via apache. 
        ProxyPass /captcha http://localhost:8000/captcha 
        # Routes spécifiques correspondantes aux URLS paramétrées dans le fichier settings.production.py
        ProxyPass /utilisateur http://localhost:8000/utilisateur
        ProxyPassReverse /utilisateur http://localhost:8000/utilisateur
        ProxyPass /administrateur http://localhost:8000/administrateur
        ProxyPassReverse /administrateur http://localhost:8000/administrateur
        ProxyPass /portail http://localhost:8000/portail
        ProxyPassReverse /portail http://localhost:8000/portail
        # Route spécifique à l'outil de gestion des tableaux. 
        ProxyPass /select2/fields http://localhost:8000/select2/fields
        ProxyPassReverse /select2/fields http://localhost:8000/select2/fields
        # Route avertissant l'utilisateur qu'il est bloqué. 
        ProxyPass /locked http://localhost:8000/locked
        ProxyPassReverse /locked http://localhost:8000/locked 
 
        ServerAdmin webmaster@localhost
 
        <Directory /var/www/site/noethysweb/media>
            Require all granted
        </Directory>
        <Directory /var/www/site/noethysweb/static>
            Require all granted
        </Directory>
        <Directory /var/www/grav>
            Require all granted
            Options FollowSymlinks
            AllowOverride all 
            Allow from all
        </Directory>
        <Directory /var/www/html>
            Require all granted
        </Directory>
        <Directory /usr/share/phpmyadmin>
            Options SymLinksIfOwnerMatch
            DirectoryIndex index.php
        </Directory>
 
        <Directory /usr/share/phpmyadmin/templates>
            Require all denied
        </Directory>
 
        <Directory /usr/share/phpmyadmin/libraries>
            Require all denied
        </Directory>
 
        <Directory /var/www/grav/>
        Require all granted
            Options FollowSymlinks
            AllowOverride all
        </Directory>
        ErrorLog ${APACHE_LOG_DIR}/error_grav.log
        CustomLog ${APACHE_LOG_DIR}/access_grav.log combined
        ServerName www.mon_association.fr
        SSLCertificateFile /etc/letsencrypt/live/polygones-lentilly.fr/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/polygones-lentilly.fr/privkey.pem
        Include /etc/letsencrypt/options-ssl-apache.conf
    </VirtualHost>
</IfModule>

Voir aussi

Dans la rubrique installation-hébergement :