OS | Espace disque | RAM | Processeur | Serveur Web | Base de données |
---|---|---|---|---|---|
GNU/Linux (64 bits) | 8 Go | 2 Go | 2 coeurs | Apache 2.4 / Php 7.3 | Postgresql 9.6 |
OS | Espace disque | RAM | Processeur | Serveur Web | Base de données |
---|---|---|---|---|---|
Debian 10 (64 bits) | 20 Go* | 16 Go | 4 coeurs | Apache 2.4 / Php 7.4 | Postgresql 12 |
*Il est recommandé de ne pas mettre la base de données et les docservers sur le serveur applicatif
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 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
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
apt-get install php7.4 libapache2-mod-php7.4 php7.4-cli php7.4-json php7.4-pgsql php7.4-curl php7.4-xml php7.4-zip php7.4-imagick imagemagick git
Modification du propriétaire du répertoire de sessions :
chown maarch. -R /var/lib/php/sessions/
sudo nano /etc/ImageMagick-6/policy.xml
Remplacer <policy domain="coder" rights="none" pattern="PDF" />
par <policy domain="coder" rights="read" pattern="PDF" />
Créer le fichier /etc/apache2/sites-available/maarch.conf
nano /etc/apache2/sites-available/maarch.conf
contenant :
<VirtualHost *:80>
<Directory /var/www/html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
<Directory "/var/www/html/MaarchParapheur">
AllowOverride All
Options -Indexes
Options FollowSymLinks Includes ExecCGI
SetEnv MAARCH_TMP_DIR "/tmp/"
SetEnv CONFIG_DIR "/var/www/html/MaarchParapheur/config/"
</Directory>
</VirtualHost>
!! IMPORTANT !!
Ajoutez cette configuration dans le vhost en faisant attention de bien modifier la valeur :
SetEnv MAARCH_ENCRYPT_KEY "Security Key Maarch Parapheur 2008"
Cette clé est utilisée pour chiffrer les mots de passe dans la base de données ainsi que pour chiffrer les valeurs dans le token de connexion.
Si ce n'est pas modifié, cela compromet fortement la sécurité de l'application.
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>
A faire dans /etc/php/7.4/apache2/php.ini
et /etc/php/7.4/cli/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
service apache2 restart
cd /var/www/html
mkdir MaarchParapheur
cd MaarchParapheur
git clone -b 21.03 https://labs.maarch.org/maarch/MaarchParapheur .
git checkout tags/$(git tag --sort=committerdate | grep -E '21\.03\.([0-9]+)$' | tail -1) -b $(git tag --sort=committerdate | grep -E '21\.03\.([0-9]+)$' | tail -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 uniquement lui.
chown -R maarch. /var/www/html/MaarchParapheur
cd /var/www/html/MaarchParapheur
find . -type f -exec chmod 0644 {} \;
find . -type d -exec chmod 0755 {} \;
mkdir -p /opt/maarchparapheur/docservers/documents/
mkdir -p /opt/maarchparapheur/docservers/attachments/
mkdir -p /opt/maarchparapheur/docservers/signatures/
mkdir -p /opt/maarchparapheur/docservers/esigned_documents/
mkdir -p /opt/maarchparapheur/docservers/original_documents/
cd /opt/maarchparapheur
chown -R maarch:maarch .
find . -type f -exec chmod 0644 {} \;
find . -type d -exec chmod 0755 {} \;
Créer la base de données "maarchparapheur"
CREATE DATABASE maarchparapheur WITH OWNER = maarch ENCODING = 'UTF8' TABLESPACE pg_default;
Importer le fichier sql/structure.sql
cd /var/www/html/MaarchParapheur
cp config/config.xml.default config/config.xml
nano config/config.xml
et renseigner les informations de votre base de données dans la balise suivante :
<database>
<server>localhost</server>
<port>5432</port>
<type>POSTGRESQL</type>
<name>maarchparapheur</name>
<user>maarch</user>
<password>maarch</password>
</database>