Veuillez prendre connaissance des pré-requis de Maarch. Nous allons également utiliser PHP 7 qui propose des performances accrues non négligeables. |
OS | Espace disque | RAM | Processeur | Serveur Web | Base de données |
---|---|---|---|---|---|
Centos 7.5 | 8 Go | 2Go | 2 | Apache 2.4.10 / Php 7.0.11 | Postgresql 9.4 |
Pensez à vérifier l'espace disque de votre environnement en tapant la commande : | |
df -h |
Mise à jour du système
yum update
Installation de quelques utilitaires
yum install nano
yum install mlocate
yum install wget
yum install net-tools
yum install httpd
yum install setroubleshoot-server
Création d'un utilisateur et d'un groupe dédié à l'application
useradd maarch
passwd maarch
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
Si nécessaire, permettre l'accès au répertoire /var/www/html
yum remove mod_security
Configurer selinux pour autoriser la lecture / écriture dans les répertoires web et exécution batch via httpd
#pour savoir ce qui bloque dans selinux : sealert -a /var/log/audit/audit.log | less
setsebool -P httpd_execmem 1
setsebool -P httpd_can_network_connect 1
setsebool -P nis_enabled 1
#autoriser php via apache à accéder aux répertoires des docservers
setsebool httpd_enable_homedirs on
#permettre à apache d'écrire dans /opt/maarch -> permission d'écrire dans un répertoire public
setsebool allow_httpd_anon_write 1
cd /var/www/html/
chown -R maarch. .
find . -type f -exec chmod 0644 {} \;
find . -type d -exec chmod 0755 {} \;
chcon -t httpd_sys_content_t . -R
chcon -t httpd_sys_rw_content_t . -R
Préparation de la conf apache, éditer seulement les éléments nécessaires du fichier httpd.conf
mkdir /var/www/html/MaarchCourrier
nano /etc/httpd/conf/httpd.conf
User maarch
Group maarch
<Directory "/var/www/html/MaarchCourrier">
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)$">
Order allow,deny
Allow from all
</FilesMatch>
# App tools files
<FilesMatch "\.(htm|html|jar|jnlp)$">
Order allow,deny
Allow from all
</FilesMatch>
</Directory>
chown -R maarch. /var/www/html
service httpd restart
ps -aux | grep httpd
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
yum install postgresql postgresql-server postgresql-contrib
postgresql-setup initdb
systemctl start postgresql
systemctl enable postgresql
Modifier le mot de passe du compte postgres
su postgres
psql
ALTER USER postgres WITH PASSWORD 'maarch';
\q
Créer l'utilisateur Maarch
psql
CREATE USER maarch WITH ENCRYPTED PASSWORD 'maarch';
ALTER ROLE maarch WITH CREATEDB;
ALTER USER maarch WITH SUPERUSER;
\q
exit
Modifier le mode de connexion au serveur postgres
su
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
Attention ! il est fortement déconseillé d'installer php en version 5 qui est en fin de support.
yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
Suppression des versions de php existantes
yum remove php-common mod_php php-cli
Installation des principaux paquets de php 7
yum install -y --enablerepo=remi-php73 php
Installation des paquets nécessaires à MaarchCourrier
yum install php73 php73-xml php73-gd php73-xmlrpc php73-mbstring php73-pdo php73-imap php73-ldap php73-pgsql php73-pear php73-imagick php73-soap php73-mbstring php73-json
yum install pear
pear channel-discover pear.maarch.org
pear install maarch/CLITools-0.3.1
pear install SOAP-0.13.0
pear install MIME_Type
nano /etc/php.ini
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
Modification des droits du répertoire contenant les sessions
chown -R maarch. /var/lib/php/mod_php/session/
Prise en compte des installations php par apache
systemctl reload httpd.service
yum install phpPgAdmin
nano /etc/httpd/conf.d/phpPgAdmin.conf
# ajouter Require all granted
nano /etc/phpPgAdmin/config.inc.php
# éditer $conf['servers'][0]['host'] = 'localhost';
# et $conf['owned_only'] = true;)
yum install unzip p7zip ghostscript ImageMagick
yum install poppler-utils
yum install openjdk-8-jre
yum install java-1.8.0-openjdk
yum install git
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
yum install install unoconv
cd /var/www/html/MaarchCourrier/
git clone -b 19.04 https://labs.maarch.org/maarch/MaarchCourrier .
git checkout tags/$(git tag --sort=committerdate | grep -E '19\.04\.([0-9]+)$' | tail -1) -b $(git tag --sort=committerdate | grep -E '19\.04\.([0-9]+)$' | tail -1)
git config core.fileMode false
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 utiliserons l'utilisateur applicatif maarch.
cd /var/www/html/
chown -R maarch:maarch .
find . -type f -exec chmod 0644 {} \;
find . -type d -exec chmod 0755 {} \;
chcon -t httpd_sys_rw_content_t /var/www/html/ -R
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
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
cd /var/www/html/MaarchCourrier/referential/ban/
rm -Rf indexes
ln -s /opt/maarch/docservers/[ID_DE_VOTRE_CUSTOM]/referential/ban/ indexes
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
# désactiver selinux pour que l'utilisateur maarch puisse écrire via le service apache dans la crontab de l'utilisateur maarch
setenforce 0
cp /var/www/html/MaarchCourrier/apps/maarch_entreprise/xml/log4php.default.xml /var/www/html/MaarchCourrier/apps/maarch_entreprise/xml/log4php.xml
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 |