Académique Documents
Professionnel Documents
Culture Documents
Après avoir étudié les bases des formats HTML et CSS, après avoir travaillé sur les formulaires HTML et
les traitements associés en Python, nous poursuivons notre progression sur l’étude d’un système de
gestion de contenu (en anglais, on parle de Content Management System d’où l’acronyme CMS sous
lequel on évoque la plupart du temps ce genre de logiciels). La plupart du temps, quand il s’agit de
proposer un « site vitrine », c’est-à-dire, un site de présentation d’une organisation quelconque, les chefs
de projets optent généralement pour un CMS. Quand il s’agit de développer une application Web
spécifique à un besoin de gestion, la situation peut bien sûr être différente, c’est ce que nous explorons
notamment dans la spécialité SLAM.
Remarque : Le compte webmestre pour tous les CMS est jessie, le mot de passe est secret.
Les différents mots de passe mis en œuvre sont rassemblés dans l’annexe n°3 (Installation
MV).
Ces sites sont propulsés par un serveur Apache. Nous allons pour le moment nous concentrer sur un CMS
libre, écrit en Python et disponible sous licence BSD : Django CMS !
1 Si vous renommez l’extension ova en tar, vous pouvez décompresser cette archive pour voir…
Important : Dans la section suivante, nous supposons que vous avez démarré la machine
virtuelle et que vous avez lancé le serveur de développement de Django CMS (voir la section
précédente).
2.1. Le thème
Le thème utilisé est adapté de
celui du réseau AMAP haut-
normand. Nous rappelons bien
sûr que cette adaptation a un
objectif pédagogique et qu’il
ne s’agit surtout pas de
l’utiliser en dehors de ce cadre,
car nous enfreindrions alors les
règles du droit d’auteur.
Note : Il m’a semblé plus pertinent de partir d’un thème réel. En effet, le but de notre formation
n’étant pas le web design, nous nous concentrons uniquement sur le développement…
Dans la figure ci-dessous, nous avons déplié les sous-pages de la page « Le réseau des amap ».
Remarque : Vous devriez alors pouvoir comprendre pourquoi la page « Accueil » n’est pas
dans le menu (comme nous avons pu le constater précédemment).
Pour chaque page créée, nous pouvons éditer à l’aide du bouton , le bouton permet d’accéder à
des propriétés spécifiques, par exemple les « Paramètres avancés » (auxquels nous pouvons également
accéder depuis l’écran d’édition de la page).
Nous accédons aux « Paramètres avancés » de la page « Accueil ». Nous pouvons
alors constater que le modèle associé est « Home Page » (voir la figure ci-contre).
Si nous accédons maintenant aux paramètres avancés de la
page « Le réseau des amap » (vous pouvez sortir du formulaire précédent en
sélectionnant le lien « pages » du fil d’Ariane), nous constatons cette fois-ci que le
modèle associé est « Page ». Nous pouvons également maintenant comprendre
(voir la figure ci-contre) pourquoi nous étions automatiquement redirigés vers la
sous-page « Présentation » tout à l’heure…
Ces deux modèles « Home Page » et « Page » correspondent à deux fichiers
templates distincts.
Note : Nous supposerons donc ci-dessous que vous avez un accès au système de fichiers
(que ce soit via le navigateur de fichiers « Thunar » ou le client FTP « Filezilla ») dans le
dossier /var/www (voir les consignes de l’annexe n°1).
Nous sélectionnons maintenant le dossier « djangamap » (dans lequel ont été placé les
fichiers de « Django CMS »), puis le dossier « amap_auvergne », nous pouvons accéder au
contenu du dossier « templates » (voir la figure ci-contre). Nous pouvons alors éditer les
fichiers templates « home.html » et « page.html ».
Nous retrouvons là une syntaxe proche de celle de Jinja 2 que nous avons découvert avec le générateur de
site statique Pelican.
Note : Je ne me lance pas ici dans des explications, la documentation de django (traduite en
français) est extrêmement claire.
Comme nous sommes toujours authentifiés en tant qu’administrateur du site, nous avons accès en
permanence à un menu d’édition (voir la figure ci-dessous).
Exercice
2..1 Le réseau AMAP Auvergne se développe tous les
jours. Il y a désormais 40 amap pour 1450 adhé-
rents avec 62 producteurs et 28 types de produits
proposés. On vous demande de mettre à jour le site
du réseau en conséquence.
Quand nous modifions le contenu d’un élément de la structure du
site, le CMS nous propose de publier les modifications (voir la
figure ci-dessous).
Exercice
2..2 Enregistrez votre modification afin que l’information soit accessible au public.
Revenons maintenant sur le contenu du fichier template
home.html (voir la section précédente pour l’édition de
ce fichier), dont voici un extrait ci-contre.
Nous retrouvons les éléments de structure aperçus
auparavant (voir ci-dessus), définis avec la balise
placeholder :
• teaser
• avantages
• engagements
• fonctionnement
Les engagements
La Charte nationale des AMAP cadre ce système d'échange organisé par des bénévoles.
Le consomm'acteur s'engage sous la forme d'un abonnement réglé à l’avance au
producteur. Ce dernier s'engage à fournir des produits cultivés ou élevés sans
pesticides, ni engrais chimiques de synthèse.
Exercice
2..3 Opérez les modifications demandées sur le site vitrine AMAP Auvergne.
http://lescourgettesdenotredame.blogspot.com/
Vous pourrez notamment utiliser le plugin « Link / Button » (voir l’exemple ci-dessous).
Exercice
2..4 Opérez les modifications demandées sur le site vitrine AMAP Auvergne.
Notre partenaire nous a communiqué un logo (suivez ce lien pour y accéder). On nous demande de
l’intégrer à notre site vitrine. Nous nous plaçons donc en mode édition. Nous éditons la structure de la
page et nous développons particulièrement le bloc « Partenaires ».
Nous allons ajouter cette nouvelle image à notre bloc (voir la figure
ci-contre). Nous sélectionnons le plugin « Picture / Image » (voir la
figure ci-contre).
Nous sélectionnons ensuite le bouton « Sélectionner un fichier » (voir la figure ci-dessous).
Une nouvelle fenêtre du navigateur s’ouvre.
L’interface du gestionnaire de fichiers de Django
CMS nous permet de créer un nouveau dossier,
que nous nommerons « Footer » (voir les figures
ci-dessous).
Une fois ce nouveau dossier enregistré, nous le sélectionnons, afin d’y enregistrer notre fichier image.
Une fois le téléversement opéré, il ne nous reste plus qu’à sélectionner l’image en cliquant sur le lien
(voir la figure ci-dessous).
Nous retrouvons l’image sélectionnée dans le greffon que nous étions en train d’ajouter à notre bloc
« Partenaires ». Il ne nous reste plus qu’à enregistrer la modification (voir les figures ci-dessous).
Exercice
2..5 Ajoutez le logo du partenaire au site vitrine AMAP Auvergne en reproduisant la procé-
dure décrite ci-dessus, puis publiez les modifications.
Nous saisissons le titre de notre page et nous modifions le slug de la page générée afin de le rendre plus
lisible (voir la figure ci-dessous).
Une fois la page enregistrée, nous déplions la structure de la page et nous ajoutons un plugin texte à notre
bloc contenu.
Nous commençons à saisir le paragraphe suivant dont vous trouverez le contenu et le rendu ci-dessous.
L’agriculture paysanne doit
permettre à un maximum de paysans
répartis sur tout le territoire
de vivre décemment de leur métier
en produisant sur une
exploitation à taille humaine une
alimentation saine et de qualité,
sans remettre en cause les
ressources naturelles de demain.
Elle doit participer avec les
citoyens à rendre le milieu rural
vivant dans un cadre de vie apprécié par tous.
Exercice
Exercices
3..7 Répondez à la demande d’ajout du texte, formulée
ci-dessus, puis publiez vos modifications. Une fois
réalisée, la structure du bloc contenu devra être la
suivante (voir la figure ci-contre).
3..8 Configurez la page « La charte des amap » afin
qu’elle redirige automatiquement sur la sous-page
« La nouvelle charte », puis publiez les modifica-
tions.
eux-mêmes. Tant dans leur pratique que dans leur relation avec les groupes, ils
favorisent et concrétisent sa mise en œuvre et sa construction progressive. Mais
cette action ne peut être le fait des agriculteurs seuls, elle doit être soutenue
collectivement, en particulier sur le territoire francilien où la pression foncière
est renforcée par l’extension urbaine.
Autrement dit, la création d’une AMAP ne se résume pas à la conception d’une
alternative consumériste. Depuis le début des années 2000, il est en effet de plus en
plus facile de vendre ou d’acheter des « paniers » de légumes.
Contrairement à une idée répandue, une AMAP n’est pas un intermédiaire commercial !
Une AMAP (Association pour le Maintien d’une Agriculture Paysanne) est un partenariat
entre un groupe de consommateurs et un agriculteur.
Ce partenariat correspond au fait qu’un groupe de consommateurs achètent à l’avance
la production d’un agriculteur : ils lui donnent les moyens de produire et lui
garantissent l’écoulement de sa production. En retour, le producteur s’engage à
distribuer sa production tout au long de la saison.
Le terme « AMAP »® est une marque détenue par Alliance PEC Provence ; en Ile-de-
France, le Réseau régional des AMAP en est le dépositaire légal.
Le partenariat AMAP est défini par la charte des AMAP, qui présente 18 principes
fondateurs.
Par ailleurs, dans la mesure où les partenariats AMAP sont des activités commerciales
entre des producteurs et consommateurs, ils restent soumis au Code de la consommation
et au Code du commerce.
Enfin, comme il s’agit de produits alimentaires, les producteurs doivent respecter la
réglementation sanitaire en vigueur.
Exercice
3..9 Éditez la nouvelle page conformément aux consignes partagez ci-dessus, puis publiez
sur le site AMAP Auvergne.
On nous demande également d’éditer le contenu d’une nouvelle sous-page « Trouver une amap ». Le
contenu de cette page est beaucoup plus sommaire :
Recherche par…
Exercices
3..10 Éditez la nouvelle page conformément aux consignes partagez ci-dessus, puis publiez
sur le site AMAP Auvergne.
3..11 Modifiez la configuration du site de façon à ce que la page « Vie des amap » soit rediri-
gée automatiquement vers la sous-page « Créer son amap » (voir ci-dessous l’illustra-
tion du résultat attendu).
On nous demande également d’ajouter un lien dans le bloc « fonctionnement » vers la nouvelle page
« Créer son amap ». Nous retournons pour cela sur la page accueil. Nous nous plaçons en mode édition,
puis nous éditons la structure de la page. Nous ajoutons alors un nouveau greffon au bloc (voir la figure
ci-dessous).
Une fois fait, nous obtenons une nouvelle structure, composée de deux greffons, pour notre bloc (voir
l’illustration ci-dessus).
Exercice
3..12 Ajoutez le lien demandé dans le bloc « Fonctionnement » vers la page « Créer son
amap » (le titre du lien est lui « Créer une AMAP »). Publiez les modifications.
On nous demande également d’ajouter un lien dans le bloc « Engagement » vers la page « La nouvelle
charte ». le titre du lien sera « La charte nationale des AMAP ».
Exercice
3..13 Ajoutez le lien demandé dans le bloc « Engagement », puis publiez les modifications.
Côté avantages pratiques, une fois l’adhésion effectuée vous bénéficierez en tant que
groupe en AMAP :
Le mode opératoire d’adhésion pour 2014 est un peu différent des années précédentes
Pour les groupes en AMAP : vous avez dû recevoir par mail les identifiants pour
mettre à jour vos données et générer le formulaire d’adhésion. Si c’est ne pas le cas
merci de nous adresser un mail contact( at )amap-auvergne ( . )org.
Pour les paysans : vous allez recevoir très prochainement un mail avec votre
formulaire d’adhésion pré-rempli.
Exercice
3..14 Ajoutez cette nouvelle sous-page, puis publiez-la. À la fin, vous devez obtenir un rendu
conforme à l’illustration ci-dessous si vous consultez la page « Le réseau des amap ».
La nouvelle page apparaît en dernier dans le sous-menu de la page / rubrique « Le réseau des amap ».
Sur la page d’accueil, on nous signale que le lien « Adhérer au réseau » est erroné (voir l’illustration ci-
dessous).
Exercice
3..15 Traitez la demande évoquée ci-dessus. Faîtes en sorte qu’en plus d’être corrigée, le lien
puisse facilement être éditable par le webmestre…
4. Mesure d’audience
Remarque : Europa Analytics, qui est l’organisation qui s’occupe du monitoring des sites de la
Commission Européenne utilise Matomo pour cet usage sur un serveur auto-administré (la
fondation Matomo propose également un hébergement centralisé dans son propre cloud).
Remarque : Je n’ai même pas réussi à désactiver cette option, mais j’ai vérifié le bon
fonctionnement de la mesure d’audience avec « chromium » qui ne s’embarrasse pas des
mêmes protections de la vie privée…
Exercice
4..16 Mettez en place une mesure d’audience pour le site n°2 (AMAP Auvergne, propulsé par
Spip).
5.1. Divio
Django CMS est un logiciel libre développé principalement par l’entreprise européenne (basée
notamment en Suisse) Divio. Un peu à la manière de Wordpress (voir ci-dessous), l’entreprise propose
une plate-forme d’hébergement de projet dans leur cloud. Les développeurs peuvent même tester la plate-
forme gratuitement.
Attention : De nombreux sites mettent en œuvre les nombreux plugins disponibles sur le net
afin d’étendre ce moteur de blog assez limité. Très peu d’entre eux étant maintenu, les risques
de sécurité sont majeurs. Dans le monde Wordpress le cœur est solide mais les extensions
non, donc prudence…
À l’autre bout du spectre des solutions CMS libres, Drupal est beaucoup plus difficile à prendre en main.
La version 8 repose sur le framework PHP Symfony. Cette solution est réputée être plébiscité par les
grands comptes. Bref, la courbe d’apprentissage est beaucoup plus élevée, mais cette solution permet de
gérer n’importe que type de contenu.
Joomla peut apparaître une solution intermédiaire en termes de temps d’apprentissage. L’architecture
MVC reposant sur la programmation objet offre à cette solution une assez grande évolutivité. La création
de nouveaux types de contenu, comme pour Drupal est facilitée avec d'excellentes solutions comme
SEBLOD. Cependant dès qu’on cherche un peu à le personnaliser, cela devient vite une usine à gaz.
Même si l’utilisation de Spip semble aujourd’hui moins importante. Cette solution reste tout de même
assez populaire en France étant donné que Spip est majoritairement développé par une communauté
francophone. La syntaxe des squelettes Spip a été historiquement pensée pour que les non informaticiens
puissent créer leurs propres thèmes. Dans les autres projets de CMS, développées par des communautés
francophones, on peut notamment citer Dotclear et PluXml.
2 Congrès sur le langage de programmation Python ; Le terme signifie en anglais Python Conference. Le mouvement est
originaire des États-Unis et s'est diffusé dans de nombreux autres pays à travers le monde.
Pour travailler avec le logiciel Spip, vous pourrez notamment vous appuyer sur cette documentation en
ligne. Spip étant à l’origine un projet français, il dispose d’une grande communauté francophone, ce qui
est un avantage pour l’accès à la documentation ou pour échangera avec la communauté.
6.1. Importation de la MV
Vous lancez l’application Virtualbox, puis vous lancez l’importation de l’appareil via le menu :
3 Si vous renommez l’extension ova en tar, vous pouvez décompresser cette archive pour voir…
a) Navigateur de fichiers
Via le menu « Aller » du navigateur de fichier « Thunar », vous
sélectionnez l’entrée « Ouvrir l’emplacement » (vous pouvez
également utiliser la combinaison « Ctrl + L »), puis vous collez
ou saisissez la commande suivante :
sftp://jessie@localhost:2222/var/www
C’est donc au travers d’une session ssh que nous accédons au système de fichiers distant. Ce qui constitue
une bonne pratique, car l’accès est alors sécurisé.
L’application, vous demande alors de saisir le mot de passe pour l’utilisateur jessie :
Vous pouvez conserver le choix de demander au système de s’en souvenir jusqu’à la fin de la session…
Note : Pour les utilisateurs de Windows, le navigateur de fichiers ne supporte pas le protocole
SSH (à ma connaissance du moins). Vous pouvez néanmoins, tout comme sur GNU/Linux
d’ailleurs, utiliser l’application de transfert de fichiers Filezilla (vous perdez en ergonomie,
efficacité du travail du développeur cependant…).
Via le menu « Fichier », ouvrez le gestionnaire de sites et enregistrez un nouveau site en tenant compte
des informations partagées dans les captures figurant ci-dessus.
Note : Si vous utilisez « Filezilla », vous devrez télécharger les fichiers (prenez garde où) pour
pouvoir les éditer…
b) Terminal
Via les menus ou le raccourci sur le tableau de bord, vous lancez un terminal virtuel dans lequel vous
exécutez la commande suivante :
ssh -p 2222 jessie@localhost
Et voilà, vous disposez d’une console sur la machine virtuelle pour l’utilisateur jessie…
Note : Pour les utilisateurs de Windows, le support du protocole SSH n’est pas natif à l’invite de
commandes (à ma connaissance du moins). Il suffit, a priori (à voir avec votre enseignant
référent) d’installer le logiciel PuTTY.
Note : En cas d’erreur (souvent caractérisée par une page blanche), explorez les logs d’apache
à l’aide de la commande (il faut être en root) : tail /var/log/apache2/error.log
Nous lançons alors la commande qui permet d’éteindre immédiatement et proprement la machine
virtuelle :
shutdown -h now
Note : Cette partie a déjà été réalisée sur la machine virtuelle, elle n’est donc pas à refaire. Elle
s’adresse à tous ceux qui voudraient reproduire cet environnement de développement sur un
autre système, à tous les curieux…
Dans le monde des CMS Python, Django CMS est probablement le plus populaire… C’est en tout cas, le
CMS le plus abordable.
7.1. Console
On commence par ouvrir une session en console sur la machine virtuelle pour l’utilisateur jessie. Afin
d’éviter les erreurs de saisie, nous allons passer par un terminal virtuel qui nous permettra d’effectuer
facilement des copiés / collés pour les commandes suivantes :
ssh -p 2222 jessie@localhost
Normalement, vous vous retrouvez alors (dans l’arborescence du système de fichiers) dans le répertoire
personnel de jessie. Nous pouvons nous en assurer à l’aide de la commande pwd :
pwd
Le système répond :
/home/jessie
Les librairies de Django CMS vont être installées dans un environnement virtuel. Nous devons activer cet
environnement afin de pouvoir opérer avec un interpréteur python dédié :
source venv/djangocms_amap_env/bin/activate
Afin que l’utilisateur n’oublie pas qu’il utilise un environnement virtuel spécifique, qui est analogue en
tout point à une session shell classique à la différence que l’interpréteur python appelé est celui de
l’environnement virtuel.
Nous mettons à jour pip, puis installons ensuite Django CMS, en téléchargeant les sources depuis les
dépôts PyPI :
(djangocms_amap_env)$ pip install --upgrade pip
(djangocms_amap_env)$ pip install djangocms-installer
Le système vous informe que vous devrez utiliser la combinaison de touches « Ctrl + C » pour arrêter le
serveur de développement.
Il ne reste plus qu'à charger l'URL http://localhost:9000 dans notre navigateur favori…
Nous modifions ensuite la configuration de notre site. Dans le fichier settings.py, nous modifions la
valeur de la variable INSTALLED_APPS (c’est une liste) :
INSTALLED_APPS = [
...
'amap_auvergne',
'djangocms_snippet',
]
Afin de faciliter le redéploiement de notre projet, nous intégrons la ligne suivante à la fin du fichier
requirements.txt, généré lors de l’installation de Django CMS :
djangocms-snippet>=3.0,<4.0
8. ANNEXE : Installation MV
En partant d’une image Debian, j’ai conservé les choix proposés par défaut par le programme
d’installation.
• Le mot de passe de l’utilisateur root est secret!03
• Le mot de passe de l’utilisateur jessie est secret
• Le mot de passe root du service MariaDb est secret!63
Dans MariaDB (via par exemple l’interface phpmyadmin), on crée trois utilisateurs (avec des droits sur
une base portant le même nom) : djangamap, amaspip, amapress.
On installe l’interface de développement pour le service MariaDb :
# apt -y install libmariadbclient-dev libssl-dev
Ce forçage de la version 7.3 provoque des erreurs sur le logiciel PhpMyAdmin. Il est alors nécessaire de
modifier le fichier /usr/share/phpmyadmin/libraries/sql.lib.php :
• Il faut rechercher l’expression (count($analyzed_sql_results['select_expr'] == 1) (à l'aide des
touches « Ctrl + W » avec nano)
• Et la replacer par ((count($analyzed_sql_results['select_expr']) == 1) (on ajoute des
parenthèses autour de l’appel de count)
On redémarre alors le service apache :
# systemctl restart apache2
Note : Il a fallu également vider les répertoires tmp et local du site amaspip, sinon on ne
pouvait plus accéder à l’espace des rédacteurs (« accès interdit »).
Normalement, si tout c'est bien passé, "(djangocms_env)" devrait apparaître devant chaque ligne du
prompt pour informer qu'on est bien dans l'environnement virtuel.
On complète (si nécessaire) par l’installation du module python pour le service MySql / MariaDb :
(djangocms_env)# pip install mysqlclient
On complète (si nécessaire) par l’installation du module python pour le service PostreSQL :
(djangocms_env)# pip install psycopg2-binary
Note : normalement, l'installation du mode suffit pour l'activer. Vérifier néanmoins que ça bien
été le cas en listant les modules chargés : ls -l /etc/apache2/mods-available/
Si vous ne trouvez pas trace du module wsgi, il vous faudra l'activer : a2enmod wsgi
Nous pouvons maintenant copier le code de l’application dans le dossier djangamap avec les droits de
l’utilisateur jessie.
IMPORTANT : Il faut utiliser le fichier requirements exporté via pip freeze et non celui généré
lors de l’installation de Django CMS, car sinon certains plugins sont installés dans de
mauvaises versions…
c) Configuration sqlite
Normalement la base sqlite ne devrait pas être utilisé en production. Si, cela doit néanmoins être le cas (à
des fins de test par exemple), il est nécessaire de modifier le fichier settings.py de notre application :
DATABASES = {
'default': {
'CONN_MAX_AGE': 0,
'ENGINE': 'django.db.backends.sqlite3',
'HOST': 'localhost',
'NAME': os.path.join(BASE_DIR, 'project.db'),
'PASSWORD': '',
'PORT': '',
'USER': ''
}
}
...
Il faut ensuite donner les droits en écriture (pour le groupe qui sera www-data) pour le fichier base de
données :
chmod g+w project.db
d) Configuration MariaDB
Avant de migrer vers un autre SGBD, on commence d’abord par sauvegarder les données de notre base
sqlite :
$ source /usr/local/src/djangocms_env/bin/activate
(djangocms_env)$ cd /var/www/djangamap
(djangocms_env)$ python manage.py dumpdata > db.json
'default': {
'CONN_MAX_AGE': 0,
'ENGINE': 'django.db.backends.mysql',
'HOST': 'localhost',
'NAME': 'djangamap',
'PASSWORD': 'secret',
'PORT': '3306',
'USER': 'djangamap'
}
}
e) Configuration PostgreSql
Avant de migrer vers un autre SGBD, on commence d’abord par sauvegarder les données de notre base
sqlite :
$ source /usr/local/src/djangocms_env/bin/activate
(djangocms_env)$ cd /var/www/djangamap
(djangocms_env)$ python manage.py dumpdata > db.json
f) Configuration production
Les styles de l’administration doivent être intégrés au répertoire static. Dans le fichier settings.py, nous
allons redéfinir la variable STATIC_ROOT :
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
Puis, on lance la commande (plus besoin de droits root, mais il faut bien sur toujours être dans
l’environnement virtuel python) :
$ source /usr/local/src/djangocms_env/bin/activate
(djangocms_env)$ cd /var/www/djangamap
(djangocms_env)$ python manage.py collectstatic
Tant que nous sommes dans la configuration, nous en profitons pour désactiver le mode debug :
DEBUG = False
Par défaut, la variable (liste) ALLOWED_HOSTS est vide. Elle permet de définir les domaines à servir.
Quand le mode debug est actif, même si ALLOWED_HOSTS est vide, le domaine localhost est validé 4.
Par contre, dès que le debug est désactivé, il est nécessaire de préciser le domaine, quand bien même nous
travaillons toujours, en test, sur localhost :
ALLOWED_HOSTS = ['127.0.0.1', 'localhost']
<VirtualHost *:8081>
WSGIDaemonProcess djangamap user=jessie group=www-data threads=5
python-path=/var/www/djangamap:/usr/local/src/djangocms_env/lib/python3.7/site-
packages
WSGIScriptAlias / /var/www/djangamap/amap_auvergne/wsgi.py
<Directory /var/www/djangamap/static>
Require all granted
</Directory>
<Directory /var/www/djangamap/media>
Require all granted
</Directory>
<Directory /var/www/djangamap/amap_auvergne>
<Files wsgi.py>
Require all granted
</Files>
WSGIProcessGroup djangamap
WSGIApplicationGroup %{GLOBAL}
WSGIScriptReloading On
Order deny,allow
Allow from all
</Directory>
LogLevel warn
Normalement, le site devait alors être accessible à l’adresse localhost:8081, en cas d’erreur, vous pouvez
toujours consulter les logs :
# tail /var/log/apache2/error.log
10.1. Préparation
Création du répertoire /var/www/amaspip :
# mkdir /var/www/amaspip
<VirtualHost *:8082>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/amaspip
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Activation du virtualhost :
# a2ensite amaspip
# systemctl reload apache2
10.2. Chargement
On suit la procédure classique du spip_loader, le webmestre du site sera jessie (jessie@localhost) et le
mot de passe sera presles.
Et on supprime le spip_loader :
# rm /var/www/amaspip/spip_loader.php
11.3. Virtualhost
Création d’un virtualhost dans le fichier /etc/apache2/sites-available/amapress.conf :
Listen 8083
<VirtualHost *:8083>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/amapress
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Activation du virtualhost :
# a2ensite amapress
# systemctl reload apache2
12.1. Prérequis
La lecture de cette page, nous informe de quelques prérequis. On installe donc les paquets suivant :
# apt install php php-curl php-gd php-cli php-mysql php-xml php-mbstring mariadb-
server
Note : Nous avons quelque peu adapté la configuration proposée en remplaçant notamment
mysql-server par mariadb-server.
On crée également un nouvel utilisateur matomo sur le service MariaDb, ayant tous les droits sur une
base de données au même nom (le mot de passe est secret).
12.2. Installation
On commence d’abord bien sûr pas télécharger la dernière version (Matomo On-Premise). Puis, nous
suivons le guide proposé.
a) Gestion du répertoire
Sur la MV, on crée un répertoire matomo :
# mkdir /var/www/matomo
c) Virtualhost
On va configurer notre service sur le port 8084 de notre serveur.
IMPORTANT : On oubliera pas d’ajouter une redirection de port sur notre machine virtuelle !
<VirtualHost *:8084>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/matomo
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Activation du virtualhost :
# a2ensite matomo
# systemctl reload apache2
d) Installation du CMS
On lance l’installation depuis un navigateur depuis l’adresse localhost:8084.
L’installateur nous demande également de pouvoir écrire dans le sous-répertoire tmp :
chmod g+w /var/www/matomo/tmp
La procédure également nous signale également de désactiver les bloqueurs de site pour les sites suivis
(localhost pour nous).
f) Finalisation de l’installation
Matomo nous signale que l’on accède au site depuis l’adresse localhost:8084/index.php, mais que
Matomo a été configuré pour s'exécuter à cette adresse localhost/index.php.
Le système nous signale que l’on peut ajouter la ligne de code suivante :
trusted_hosts[] = "localhost:8084"