Installation du logiciel

Note

L’installation doit être effectuée sur une installation de base Centos 7

Prérequis

Kickstart

Prérequis

Les prérequis logiciels sont les suivants :

Système = CentOS 7 / RHEL 7 64bit

Apache = 2.4

Postgresql = 9.6

PHP = 7.1

Kickstart

Note

L’installation par défaut utilise le DVD d’installation Centos/RH et a besoin d’accéder à internet.

Le mot de passe par défaut des installation est $plu$

Personnalisation des kickstart

Par défaut les fichiers sont configurés pour être en DHCP

network --bootproto dhcp --hostname <hostname> --noipv6

Pour utiliser un adressage statique il faut utiliser une ligne de ce type à la place :

network --bootproto=static --ip=<ip> --netmask=<netmask> --gateway=<gw> --nameserver=<dns> --hostname <hostname> --noipv6

Kickstart disponibles

Chaque fichier cfg correspond à l’installation d’une machine. Pour personnaliser les informations, il faut télécharger le fichier, le modifier et l’héberger sur un serveur HTTP qui sera accessible durant la procédure d’installation.

PLU Manager

Avec PostgreSQL

Fichier de référence: plu-manager-full.cfg [http://folionet.fr/plu-ks/plu-manager-full.cfg]

Installation avec 2 disques

Partition /home séparée

Sans PostgreSQL

Fichier de référence: plu-manager.cfg [http://folionet.fr/plu-ks/plu-manager.cfg]

Installation avec 2 disques

Partition /home séparée

PDFReactor

Fichier de référence: pdf-reactor.cfg [http://folionet.fr/plu-ks/pdf-reactor.cfg]

Installation sur 1 seul disque

Lancement des installations

Note

Les exemples suivants sont à adapter suivant votre configuration

Démarrer la machine avec le DVD, puis au lancement appuyez sur TAB.

Si le DHCP est disponible, ajouter simplement l’information suivante (url du kickstart) :

ks=http://folionet.fr/plu-ks/plu-manager.cfg

S’il n’y a pas de DHCP, ajouter en plus les informations suivantes (configuration réseau à personnaliser) :

ip=192.168.1.10 netmask=255.255.255.0 gateway=192.168.1.1 dns=80.67.169.12,80.67.169.40

Enfin s’il faut un proxy, ajouter le paramètre suivant (url du proxy) :

proxy=http://webaccess.galilee.fr:8181

Exemple de démarrage :

L’ensemble des paramètres possibles est disponible ici [https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Installation_Guide/sect-kickstart-syntax.html]

Configuration du logiciel

Dépôt Yum

Apache HTTP Server

PostgreSQL

PDFReactor

PLU Manager

Dépôt Yum

Sur la machine ou est hébergé PLU Manager, il faut d’abord vérifier que le dépôt soit correctement configuré.

Le dépôt est installé durant l’installation, sa configuration est dans le fichier /etc/yum.repos.d/plu-release.repo

Pour vérifier la connectivité, taper la commande suivante :

# yum repolist plu-*

le dépôt plu-manager doit être actif et le paquet plu-manager doit être présent :

# yum info plu-manager

Paquets disponibles
Nom                 : plu-manager
Architecture        : noarch
Version             : 1.0.0
Révision            : 1.el7.centos
Taille              : 7.4 M
Dépôt               : plu-release
Résumé              : PLU Manager
URL                 : http://www.plan-local-d-urbanisme.fr/
Licence             : Galilee
Description         : PLU Manager core application

Vous pouvez passer à l’installation du paquet :

# yum install plu-manager

Apache HTTP Server

Vhost PLU Manager

La configuration du vhost pour PLU Manager est dans le fichier /etc/httpd/vhost.d/plu-manager.conf, il contient une configuration par défaut HTTP active ainsi qu’un template commenté pour configurer une connexion HTTPS.

Vous pouvez ajuster les paramètres au besoin, le fichier ne sera pas écrasé par les mises à jour.

Configuration HTTP par défaut :

<VirtualHost *:80>
    ServerAdmin root@localhost

    # ServerName plumanager.example.com
    DocumentRoot /usr/share/plu-manager/web

    ErrorLog logs/plu-error_log
    CustomLog logs/plu-access_log combined

    SetEnv SILEX_CONFIG_FILE /etc/plu-manager/parameters.ini

    <Directory "/usr/share/plu-manager/web/">
        Options FollowSymLinks
        AllowOverride None
        Require all granted

        <IfModule mod_rewrite.c>
            Options -MultiViews
            RewriteEngine On

            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteRule ^ index.php [QSA,L]
        </IfModule>
    </Directory>

    # User upload
    Alias /fileman/Uploads /home/store/plu-manager/uploads
    <Directory "/home/store/plu-manager/uploads/">
                Options FollowSymLinks
                AllowOverride None
                Require all granted
    </Directory>

</VirtualHost>

Vérifier si le service HTTP est bien actif :

# systemctl status httpd.service

Relancer le service pour prendre en compte les modifications :

# systemctl restart httpd.service

Ajustements sur le php.ini

Il y a des variables à ajuster dans le fichier /etc/php.ini

Ajuster au moins les suivantes :

post_max_size = 64M
upload_max_filesize = 64M

memory_limit = 2048M

max_execution_time = 60

max_input_vars = 4096

Relancer le service pour prendre en compte les modifications :

# systemctl reload httpd.service

PostgreSQL

Sur la machine où est installé PostgreSQL, se connecter en postgres

su - postgres

Création d’un utilisateur

Créer un utilisateur et lui affecter un mot de passe, exemple avec plumanager :

$ createuser --echo --encrypted --pwprompt plumanager
Saisir le mot de passe pour le nouveau rôle :
Le saisir de nouveau :
CREATE ROLE plumanager ENCRYPTED PASSWORD 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT LOGIN;

Conserver le mot de passe.

Création de la base

Ensuite, créer une base associée à cet utilisateur, exemple avec la base plumanager pour l’utilisateur plumanager

$ createdb --echo --encoding=UTF-8 --template=template0 --owner=plumanager plumanager
CREATE DATABASE plumanager OWNER plumanager ENCODING 'UTF-8' TEMPLATE template0;

Optimisation

Si vous le voulez vous pouvez modifier les valeurs suivantes dans le fichier postgresql.conf situé dans $PGDATA

# systemctl show postgresql-9.6.service | grep 'PGDATA='
Environment=PGDATA=/home/pgsql/data

Exemple avec 4Gb de RAM alloués à PostgreSQL :

max_connections = 200
shared_buffers = 1GB
effective_cache_size = 3GB
work_mem = 5242kB
maintenance_work_mem = 256MB
min_wal_size = 1GB
max_wal_size = 2GB
checkpoint_completion_target = 0.7
wal_buffers = 16MB
default_statistics_target = 100

Ces valeurs sont des exemples du site PgTune [http://pgtune.leopard.in.ua/] et sont à adapter suivant votre configuration.

PDFReactor

Avertissement

La machine qui héberge PDFReactor doit pouvoir accéder aux fichiers statiques de PLU Manager via son nom DNS.

Configuration du service

La configuration est dans le fichier /opt/PDFreactor/jetty/start.ini

Il faut commenter la variable jetty.http.host pour autoriser l’accès depuis des machines externes. Vous pouvez aussi modifier le paramètre java Xmx pour autoriser l’allocation de plus de mémoire.

##  Comment out to enable access from other machines.
# jetty.http.host=localhost

# Increase Web Service Memory here
-Xmx2048m

Vérifier si le service PDFReactor est bien actif :

# systemctl status pdfreactorwebservice.service

Relancer le service pour prendre en compte les modifications :

# systemctl restart pdfreactorwebservice.service

Installation de la licence

Il faut déposer le fichier licensekey.txt fourni dans le dossier /opt/PDFreactor/jetty/lib/ext du serveur.

scp licensekey.txt root@<pdfreactor-host>:/opt/PDFreactor/jetty/lib/ext

Ensuite, il faut relancer le service PDFReactor :

service pdfreactorwebservice restart

PLU Manager

Configuration système

La configuration se trouve dans le fichier /etc/plu-manager/parameters.ini

Les paramètres importants à modifier sont les suivants :

Url de base, depuis laquelle l’application est joignable par les utilisateurs, comme par le serveur PDFReactor :

app_host = 'http://plu.app.example.com'

Connexion à la base :

database_driver     = pdo_pgsql
database_host       = x.x.x.x
database_port       = 5432
database_name       = xxxxxxxxxx
database_user       = xxxxxxxxxx
database_password   = xxxxxxxxxx

Configuration de l’envoi de courriels :

mailer_host         = mailhost.example.com
mailer_port         = 25
mailer_username     = username
mailer_password     = password
mailer_encryption   =
mailer_auth_mode    =

Il faut enfin décommenter les variables suivantes :

app_cache_engine        = on
app_log_path            = /var/log/plu-manager
app_cache_path          = /var/cache/plu-manager

Avertissement

Après chaque modification du fichier de configuration, il faut supprimer le cache avec la commande rm -rf /var/cache/plu-manager/*

Fichiers d’export

Ensuite, il faut définir où seront stockés les fichiers d’export. L’installation par kickstart défini par défaut le répertoire /home/store/plu-manager/exports.

export_storage_path     = /home/store/plu-manager/exports

Le dossier doit contenir un dossier current

+-- /home/store/plu-manager/exports
| +-- current

Uploads utilisateur

La variable upload_storage_path est à modifier pour les fichiers uploadés.

upload_storage_path     = /home/store/plu-manager/uploads

Le répertoire doit contenir un dossier current qui doit lui même contenir 2 éléments et l’utilisateur apache doit pouvoir écrire à l’intérieur :

+-- /home/store/plu-manager/uploads
| +-- current
| | +-- Documents
| | +-- Images

Ils sont définis lors de l’installation kickstart.

Import de la base

Schéma de base

Il faut importer le schéma de la base de données grâce à la commande suivante :

/usr/share/plu-manager/bin/plu-manager-migration.sh

Note

L’utilisateur par défaut est admin / admin

Configuration de PDFReactor

Lorsque que tout est bon, il faut se connecter sur PLU Manager avec le login par défaut.

Aller ensuite dans « Paramètres » et ajouter la clé de configuration pdfreactor_url, celle ci est du type http://<host>:9423/service/rest.

PLU Manager est normalement prêt à être utilisé.

Mises à jour

Principe

Opérations additionnelles

Principe

Mise à jour du logiciel

La mise à jour de PLU Manager s’effectue avec la commande yum :

yum update plu-manager

Si le nouveau paquet n’est pas disponible, essayer de détruire le cache yum :

yum clean all --disablerepo="*" --enablerepo="plu-*"

Vous pouvez aussi lister les versions disponibles avec la commande suivante :

yum --showduplicates list plu-manager

Mise à jour de la base de données

Après chaque mise à jour, il faut appliquer les modifications éventuelles de la base de données.

Tout d’abord, il faut supprimer le cache de l’application :

rm -rf /var/cache/plu-manager/*

Il faut ensuite appliquer le script de migration de la base après :

/usr/share/plu-manager/bin/plu-manager-migration.sh

Opérations additionnelles

Certaines versions ont besoin d’actions manuelles supplémentaires après la mise à jour via yum, voici la liste des opérations à effectuer après leur installation.

Note

Si vous avez la version 1.0.0 installée et que vous mettez à jour en version 1.0.5, il faut effectuer toutes les opérations définies entre la version 1.0.0 et 1.0.5.

Version 1.0.3

Changement de la configuration apache par défaut /etc/httpd/vhost.d/plu-manager.conf

Dans le VirtualHost, la ligne :

FallbackResource /index.php

est remplacée par les lignes suivantes pour des raisons de performance :

<IfModule mod_rewrite.c>
    Options -MultiViews
    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^ index.php [QSA,L]
</IfModule>

Rechargement de apache :

# systemctl reload httpd.service

Version 2.3.0

Changement de la valeur recommandée de max_input_vars à 4096 dans le fichier /etc/php.ini

; How many GET/POST/COOKIE input variables may be accepted
max_input_vars = 4096

Version 2.3.3

Changement de la valeur recommandée de memory_limit à 2048M dans le fichier /etc/php.ini suite à la fonctionnalité d’export global

; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit = 2048M

Version 2.4.0

Changement de la structure des dossiers export_storage_path et upload_storage_path afin de gérer les multiples versions de PLU

Dans le dosser export_storage_path :

mkdir current
mv !(current) current
chown apache:apache current

Dans le dosser upload_storage_path :

mkdir current
mv !(current) current
chown apache:apache current

Note

Cette opération est à réaliser avant le lancement du script de migration de la base.

Note

Les valeurs de export_storage_path et upload_storage_path sont définies dans le fichier de configuration /etc/plu-manager/parameters.ini

Téléchargements

Téléchargement de la documentation :

Version PDF: https://install.plu-manager.fr/download/plu-manager.pdf

Version Epub: https://install.plu-manager.fr/download/PLUManager.epub

Index