Veuillez prendre connaissance des prérequis avant de commencer. |
OS | Espace disque | RAM | Processeur | Serveur Web | Base de données |
---|---|---|---|---|---|
Debian 9 | 8 Go | 2Go | 2 | Apache 2.4.25 / Php 7.0.30 | Postgresql 9.6.10 |
Pensez à vérifier l'espace disque de votre environnement en tapant la commande : | |
df -h |
Installation de quelques utilitaires
apt-get update && apt-get upgrade && apt-get dist-upgrade -y
apt-get install nano mlocate wget net-tools
apt-get install apache2
Création d'un utilisateur et d'un groupe dédié à l'application
groupadd --gid 1001 maarch
useradd --uid 1001 --gid 1001 maarch --shell /bin/bash
Positionner l’utilisateur « maarch » comme membre du groupe d’exécution d’Apache www-data :
usermod --groups www-data maarch
L’instruction « useradd » ne permettant pas de spécifier le mot de passe de l’utilisateur, spécifier le avec l’instruction suivante :
passwd maarch
Faire en sorte qu'Apache se lance automatiquement au démarrage du système
systemctl start apache2
systemctl enable apache2
Activer le mode de ré-écriture d'Apache, et la gestion des headers :
a2enmod rewrite
a2enmod headers
Autoriser la lecture / écriture dans les répertoires web
cd /var/www/html/
chown -R maarch. .
find . -type f -exec chmod 0644 {} \;
find . -type d -exec chmod 0755 {} \;
Modification du propriétaire lançant apache :
nano /etc/apache2/envvars
Modifiez les lignes :
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
Par :
export APACHE_RUN_USER=maarch
export APACHE_RUN_GROUP=maarch
apt-get install postgresql postgresql-contrib
systemctl start postgresql
systemctl enable postgresql
Paramétrer le format de la date
nano /etc/postgresql/9.5/main/postgresql.conf
datestyle = 'iso, dmy'
Créer l'utilisateur base de données Maarch :
su postgres
psql
CREATE USER maarch WITH ENCRYPTED PASSWORD 'maarch';
ALTER ROLE maarch WITH CREATEDB;
ALTER USER maarch WITH SUPERUSER;
\q
exit
Attention ! il est fortement déconseillé d'installer php en version 5 qui est en fin de support.
Installons les paquets nécessaires à l'environnement MaarchCourrier
apt-get install php7.0 libapache2-mod-php7.0 php7.0-cli php7.0-json php7.0-pgsql php7.0-gd
apt-get install php7.0-xsl php7.0-xmlrpc php7.0-imap php7.0-mbstring php7.0-zip php7.0-curl php-imagick php-pear
apt-get install php7.0-soap
Modification du propriétaire du répertoire de sessions :
chown maarch. -R /var/lib/php/sessions/
L'utilisation de PHP-FPM est recommandé pour les instances ayant une forte affluence.
Installation de php-fpm :
apt-get install php7.0-fpm
Activation des modules proxy :
a2enmod proxy
a2enmod proxy_fcgi
a2dismod php7.0 mpm_prefork
a2enmod mpm_worker
Verification de la configuration :
apache2ctl -V
Server MPM: worker
threaded: yes (fixed thread count)
forked: yes (variable process count)
Paramétrage de la configuration php-fpm :
nano /etc/php/7.0/fpm/pool.d/www.conf
Modifier le fichier avec ces informations :
user = maarch
group = maarch
...
listen = 127.0.0.1:9000
Redémarrez php-fpm :
service php7.0-fpm restart
Créer le fichier /etc/apache2/sites-available/maarch.conf
nano /etc/apache2/sites-available/maarch.conf
contenant :
<VirtualHost *:80>
# Si PHP-FPM, décommentez autour de filesMatch
#<FilesMatch \.php$>
# SetHandler "proxy:fcgi://127.0.0.1:9000"
#</FilesMatch>
<Directory /var/www/html/>
CGIPassAuth On
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
<Directory "/var/www/html/MaarchCourrier">
CGIPassAuth On
AllowOverride All
Options -Indexes
Options FollowSymLinks Includes ExecCGI
SetEnv MAARCH_TMP_DIR "/tmp/"
<FilesMatch ".*">
Order deny,allow
Deny from all
</FilesMatch>
# Root to allow index.php
<FilesMatch "^$">
Order allow,deny
Allow from all
</FilesMatch>
# Core root
<FilesMatch "^(index|ws_server|static|merged_js|merged_css|reopen|applet_launcher|applet_controller|log)\.php$">
Order allow,deny
Allow from all
</FilesMatch>
# App static files
<FilesMatch "\.(css|js|jpg|jpeg|png|gif|ttf|woff|woff2|svg)$">
Order allow,deny
Allow from all
</FilesMatch>
# App tools files
<FilesMatch "\.(htm|html|jar|jnlp)$">
Order allow,deny
Allow from all
</FilesMatch>
</Directory>
</VirtualHost>
En environnement multicustom, si l'accès au custom se fait via la fin du chemin, ex :
https://monserveurmaarch.com/moncustom/
Pour éviter d'avoir à ajouter un slash à la fin du chemin (et éviter une erreur 403), il faut rajouter la condition suivante dans votre vhost :
<FilesMatch "^(custom_1|custom_2|custom_3|custom_n)$">
Order allow,deny
Allow from all
</FilesMatch>
Remplacer custom_1...custom_n par l'id de vos customs
Vous pourrez ainsi y accéder via l'url :
https://monserveurmaarch.com/moncustom
A partir de Apache 2.4, il faut éditer le fichier /etc/apache2/apache2.conf, et modifier cette partie comme ceci :
<Directory /var/www>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Activer le vhost :
cd /etc/apache2/sites-available/
a2dissite 000-default.conf
a2ensite maarch.conf
service apache2 reload
pear channel-discover pear.maarch.org
pear install maarch/CLITools-0.3.1
pear install SOAP-0.13.0
pear install MIME_Type
apt-get install unzip p7zip p7zip-full
apt-get install ghostscript imagemagick
apt-get install poppler-utils
apt-get install openjdk-8-jre
apt-get install git
/etc/php/7.0/apache2/php.ini et /etc/php/7.0/cli/php.ini (si fpm est activé, remplacer apache2 par fpm)
max_execution_time = 300
max_input_time = 300
memory_limit = 1024M
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT
display_errors = On
short_open_tag = On
post_max_size = 128M
upload_max_filesize = 128M
max_file_uploads = 100
error_log = php_errors.log
apt-get install wkhtmltopdf
apt-get install libreoffice unoconv
service php7.0-fpm restart (si php-fpm activé)
service apache2 restart
cd /var/www/html
mkdir MaarchCourrier
cd MaarchCourrier
git clone -b 18.10 https://labs.maarch.org/maarch/MaarchCourrier .
git checkout tags/$(git describe --tags `git rev-list --tags=18.10.* --max-count=1`) -b $(git describe --tags `git rev-list --tags=18.10.* --max-count=1`)
Si vous utilisez un proxy, il faut exécuter cette commande en l'adaptant selon votre environnement : git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080 |
Comme le serveur Apache devra écrire des fichiers dans les dossiers de l'application, nous allons devoir mettre l'utilisateur Apache comme propriétaire de ces dossiers, et n'autoriser que lui à accéder à ces dossiers.
Selon les distributions de Linux, l'utilisateur Apache peut avoir plusieurs noms. Ici, nous prendrons maarch.
chown -R maarch. /var/www/html/MaarchCourrier
cd /var/www/html/MaarchCourrier
find . -type f -exec chmod 0644 {} \;
find . -type d -exec chmod 0755 {} \;
Nous vous proposons de créer un nouveau répertoire qui permettra d'installer des programmes complémentaires à MaarchCourrier et de stocker les documents et indexes de MaarchCourrier
mkdir -p /opt/maarch/docservers/
cd /opt/maarch
chown -R maarch:maarch .
find . -type f -exec chmod 0644 {} \;
find . -type d -exec chmod 0755 {} \;
Vous pouvez si vous le souhaiter ajouter un jeu de données qui servira lors de l'installation de l'application.
Un jeu de données SQL contient généralement :
Ce jeu de données pourra être utilisé lors de l'intallation en remplacement du fichier ./sql/data_fr.sql.
Pour se faire, il faut déposer dans le répertoire ./sql à la racine de MaarchCourrier un ou des fichiers commençant par data_ et ayant pour extension .sql, ex :
data_monparam.sql
Dans le cas d'une installation de MaarchCourrier en mode mutualisé (plusieurs instances MaarchCourrier sur le même serveur, vous pouvez préparer plusieurs fichiers data_*.sql. Ex pour un serveur multicollectivités :
Afin que l'installeur puisse éditer le crontab de l'utilisateur maarch, il faut au préalable le créer
su maarch
crontab -e
#écrire en entête
MAILTO=""
#et quitter avec la commande echap+ :wq si vous êtes dans vi
Ouvrez un navigateur FireFox ou Chrome (Firefox est recommandé)
Dans la zone url, écrivez : http://127.0.0.1/MaarchCourrier/
Suivez les instructions de l'asssistant d'installation en ligne.
Voilà, votre MaarchCourrier est installé !
Si vous n'arrivez pas à exécuter l'installeur dans son intégralité, vous pouvez opter pour une installation manuelle |