Installation pour Centos 8.1 avec selinux activé (Enforcing)

Information Veuillez prendre connaissance des prérequis avant de commencer.
OS Espace disque RAM Processeur Serveur Web Base de données
Centos 8.1 50 Go 8Go 2 Apache 2.4.6 / Php 7.3 Postgresql 10

Installation de l'environnement nécessaire à Maarch Courrier

Information Pensez à vérifier l'espace disque de votre environnement en tapant la commande : df -h

Mise à jour du système

dnf update

Installation de quelques utilitaires

dnf install nano
dnf install mlocate
dnf install wget
dnf install net-tools
dnf install nmap
dnf install setroubleshoot-server
#GraphicsMagick
dnf install epel-release
dnf install GraphicsMagick GraphicsMagick-devel GraphicsMagick-perl

Création d'un utilisateur et d'un groupe dédié à l'application

useradd maarch
passwd maarch

Installation d'apache et PHP

Apache

dnf install httpd
usermod -a -G apache maarch

Autoriser les ports http et https

firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --reload

Faire en sorte qu'Apache se lance automatiquement au démarrage du système

systemctl start httpd
systemctl enable httpd

PHP

via les dépôts officiels

il y a actuellement une impossibilité de récupérer les paquets php-imap et php-imagick via les dépots officiels, nous recommandons d'utiliser les dépôts de rémi.

Via les dépôts de Rémi

dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
dnf module reset php
dnf module list php
dnf install php73-php php73-php-cli php73-php-common
dnf install php73-php-xml.x86_64
dnf install php73-php-gd.x86_64
dnf install php73-php-xmlrpc.x86_64
dnf install php73-php-mbstring.x86_64
dnf install php73-php-pdo.x86_64
dnf install php73-php-imap.x86_64
dnf install php73-php-ldap.x86_64
dnf install php73-php-pgsql.x86_64
dnf install php73-php-pear.noarch
dnf install php73-php-pecl-imagick.x86_64
dnf install php73-php-soap.x86_64
dnf install php73-php-pecl-zip.x86_64
/usr/bin/php73-pear channel-discover pear.maarch.org
/usr/bin/php73-pear install maarch/CLITools-0.3.1
/usr/bin/php73-pear install SOAP-0.13.0
/usr/bin/php73-pear install MIME_Type

Paramétrage de php

rm -f /etc/php.d
ln -s /etc/opt/remi/php73/php.d/ /etc/php.d
rm -f  /usr/share/php
ln -s /opt/remi/php73/root/usr/share/ /usr/share/php
rm -f  /usr/lib64/php
ln -s /opt/remi/php73/root/usr/lib64/php/modules/ /usr/lib64/php
rm -f  /usr/bin/php
ln -s /usr/bin/php73 /usr/bin/php
rm -f  /etc/php.ini
ln -s /etc/opt/remi/php73/php.ini /etc/php.ini
nano /etc/php.ini
max_execution_time = 300
max_input_time = 300
memory_limit = 1024M
error_reporting = E_ALL & ~E_NOTICE
display_errors = On
post_max_size = 128M
upload_max_filesize = 128M
max_file_uploads = 100
error_log = php_errors.log
extension_dir = "/opt/remi/php73/root/usr/lib64/php/modules/"
include_path = ".:/php/includes:/usr/share/php/pear"
upload_tmp_dir = /tmp/

Modification des droits du répertoire contenant les sessions

chown -R maarch. /var/lib/php/session

Par défaut apache et php-fpm ont été paramétrés pour répondre au dimensionnement initial.

Si on souhaite augmenter le dimensionnement des serveurs web ou si d'éventuels problèmes de charge venaient à arriver, il faut suivre ces recommendantions :

https://medium.com/@sbuckpesch/apache2-and-php-fpm-performance-optimization-step-by-step-guide-1bfecf161534

Param d'apache

nano /etc/httpd/conf.modules.d/00-mpm.conf
LoadModule mpm_worker_module modules/mod_mpm_worker.so

Param de php-fpm

nano /etc/opt/remi/php73/php-fpm.d/www.conf
user = maarch
group = maarch
listen = 127.0.0.1:9000
listen = 127.0.0.1:9000

Paramétrage d'Apache

nano /etc/httpd/conf/httpd.conf
User maarch
Group maarch
chown -R maarch. /var/www/
#pour savoir ce qui bloque dans selinux : sealert -a /var/log/audit/audit.log | less
getsebool -a | grep httpd
setsebool -P httpd_execmem 1
setsebool -P nis_enabled 1
setsebool -P httpd_can_network_connect 1
setsebool -P httpd_can_sendmail 1 
#autoriser php via apache à accéder aux répertoires des docservers
setsebool httpd_enable_homedirs on
service httpd restart
ps -aux | grep httpd
# redémarrer apache
service httpd restart
# redémarrer php-fpm
service php73-php-fpm start

Installation de Postresql

dnf install postgresql-server

Initialiser gpdata

postgresql-setup --initdb --unit postgresql

Start postgreSQL server

service postgresql start
chkconfig postgresql on

Verify PostgreSQL Installation

su - postgres
psql

Modifier le mot de passe du compte postgres

su postgres
psql
ALTER USER postgres WITH PASSWORD '********';
\q

Créer l'utilisateur Maarch

psql
CREATE USER maarch WITH ENCRYPTED PASSWORD '********';
ALTER ROLE maarch WITH CREATEDB;
ALTER USER maarch WITH SUPERUSER;
\q
exit

Paramétrer le format de la date

nano /var/lib/pgsql/data/postgresql.conf datestyle = 'iso, dmy'

Modifier le mode de connexion au serveur postgres

nano /var/lib/pgsql/data/pg_hba.conf
# modifier local all all peer
# par local all all md5
# et host all all 127.0.0.1/32 peer
# par host all all 127.0.0.1/32 md5
# et host all all ::1/128 peer
# par host all all ::1/128 md5
systemctl reload postgresql

Installation des paquets complémentaires à MaarchCourrier

dnf install unzip 
dnf install p7zip 
dnf install ghostscript 
dnf install ImageMagick
dnf install poppler-utils
dnf install java-1.8.0-openjdk
dnf install git
#si nécessaire 

ln -s /usr/local/bin/convert /usr/bin/convert

Convertir les html en imagettes

cd /tmp
wget https://downloads.wkhtmltopdf.org/0.12/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
tar xvf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
mv wkhtmltox/bin/wkhtmlto* /usr/bin
chown maarch. /usr/bin/wkhtmltopdf
chown maarch. /usr/bin/wkhtmltoimage

Outil de conversion des documents office

dnf install unoconv

Installation de Maarch Courrier

Récupération des sources

su maarch
mkdir /var/www/html/MaarchCourrier
cd /var/www/html/MaarchCourrier/
git clone -b 20.10 https://labs.maarch.org/maarch/MaarchCourrier.git .
git checkout tags/$(git tag --sort=committerdate | grep -E '20\.10\.([0-9]+)$' | tail -1) -b $(git tag --sort=committerdate | grep -E '20\.10\.([0-9]+)$' | tail -1)
git config core.fileMode false

Positionnement des droits

cd /var/www/html/
mkdir /var/www/html/MaarchCourrier/apps/maarch_entreprise/tmp/
chown -R maarch:maarch .
find . -type f -exec chmod 0644 {} \;
find . -type d -exec chmod 0755 {} \;
#Read-only directories and files used by Apache
chcon -t httpd_sys_content_t /var/www/html/ -R
#Readable and writable directories and files used by Apache
chcon -t httpd_sys_rw_content_t /var/www/html/ -R

Configuration d'apache

su
nano /etc/httpd/conf/httpd.conf
<Directory "/var/www">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>
<Directory "/var/www/html">
    <FilesMatch \.php$>
        SetHandler   "proxy:fcgi://127.0.0.1:9000"
    </FilesMatch>
    CGIPassAuth On
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Require all granted
</Directory>
<Directory "/var/www/html/MaarchCourrier">
    AllowOverride All
    Options -Indexes 
    Options FollowSymLinks Includes ExecCGI
    #Chemin vers le dossier temporaire
    SetEnv MAARCH_TMP_DIR "/tmp/"

    #Clé de chiffrement des mdp. A MODIFIER
    SetEnv MAARCH_ENCRYPT_KEY "Security Key Maarch Courrier 2008" 
    <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|ico)$">
        Order allow,deny
        Allow from all
    </FilesMatch>
    # App tools files
    <FilesMatch "\.(htm|html|jar|jnlp)$">
        Order allow,deny
        Allow from all
    </FilesMatch>
</Directory>
service httpd restart
service php73-php-fpm start

Création d'un répertoire dédié pour les applicatifs Maarch

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 {} \;
chcon -t httpd_sys_rw_content_t /opt/maarch/ -R

Si le répertoire /opt/maarch/docservers est un point de montage glusterFS alors il faut ajouter le contexte selinux suivant :

setsebool -P httpd_use_fusefs 1
ls -lZd /opt/maarch/docservers
drwxr-xr-x. 8 maarch maarch system_u:object_r:fusefs_t:s0 142 21 avril 15:50 /opt/maarch/docservers/

Personnaliser le jeu de données SQL de l'application avant son installation

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 :

  • les utilisateurs
  • les groupes
  • les entités
  • le paramétrage des workflows

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 :

  • ./sql/data_orleans.sql
  • ./sql/data_sainthilaire.sql
  • ./sql/data_saintjeanbraye.sql

Lancement de l'installeur en ligne

Etape 1

Ouvrez un navigateur FireFox (recommandé) ou Chrome

Etape 2

Dans la zone url, écrivez : http://IP_SERVER/MaarchCourrier/

Etape 3

Suivez les instructions de l'asssistant d'installation en ligne.

Et voilà, votre MaarchCourrier est installé !

Installation de la BAN (Facultatif)

su maarch
mkdir -p /opt/maarch/docservers/[ID_DE_VOTRE_CUSTOM]/referential/ban/
cd /opt/maarch/docservers/[ID_DE_VOTRE_CUSTOM]/referential/ban/
wget https://labs.maarch.org/maarch/maarchcourrieraddressesban/raw/master/indexes.tar.gz?inline=false .
tar -zxvf indexes.tar.gz?inline=false -C .
rm indexes.tar.gz\?inline\=false
mkdir /var/www/html/MaarchCourrier/custom/[ID_DE_VOTRE_CUSTOM]/referential/ban/
cd /var/www/html/MaarchCourrier/custom/[ID_DE_VOTRE_CUSTOM]/referential/ban/
ln -s /opt/maarch/docservers/[ID_DE_VOTRE_CUSTOM]/referential/ban/ indexes

Paramétrage des batchs

Paramétrage de ssmtp si utilisation de exchange

#installation d'un relai smtp
dnf install ssmtp
#paramétrage de ssmtp
root=ADRESSE_MAIL_EXPEDITRICE
hostname=vm_maarch_centos
mailhub=ADRESSE_SERVEUR_SMTP:PORT_SMTP
UseSTARTTLS=YES
FromLineOverride=YES
AuthUser=VOTRE_COMPTE_MAIL
AuthPass=PASSWORD_COMPTE_MAIL

#paramétrage du php.ini pour chemin sendmail
sendmail_path = /usr/sbin/ssmtp -t

Paramétrage du module notifications

nano /var/www/html/MaarchCourrier/custom/cs_[ID_DE_VOTRE_CUSTOM]/apps/maarch_entreprise/xml/config.json
#si nécessaire positionner le customID

    "customID" : "[ID_DE_VOTRE_CUSTOM]",
    "maarchUrl" : "http://IP_SERVEUR/MaarchCourrier/cs_[ID_DE_VOTRE_CUSTOM]/"

Création de la crontab pour l'utilisateur maarch

su maarch
crontab -e

MAILTO=""

10 12 * * 0     rm -Rf /var/www/html/MaarchCourrier/modules/notifications/batch/logs/process_event_stack/*.log
11 12 * * 0     rm -Rf /var/www/html/MaarchCourrier/modules/notifications/batch/logs/process_email_stack/*.log

results matching ""

    No results matching ""