3. Guide d'installation sous Linux


Si ce n'est pas déjà fait, nous vous conseillons de lire les pages précédentes du guide d'installation du CMS Ametys afin d'avoir une vision globale du fonctionnement et mieux appréhender l'installation technique. Ce guide considère que vous avez des connaissances en administration système, que vous comprenez l'architecture d'Ametys et idéalement que vous avez déjà installé une application Java J2EE avec Apache/Tomcat/MySQL sur un serveur Linux.

Ce guide correspond à une installation type qui a été testée et validée sur une machine virtuelle Ubuntu 20.04/Debian 10. Etant donné qu'Ametys se présente sous la forme d'applications Web complètement standards, d'autres installations fonctionneront également, en particulier concernant les chemins d'accès, les utilisateurs, les sous-domaines, ...

Cette page décrit l'installation technique des différentes applications (Back-Office, Front-Office, Solr) composant Ametys, ainsi que leurs prérequis logiciels. A noter que l'installation du Front-Office est très proche de l'installation du Back-Office. Dans le cas d'utilisation de 2 machines virtuelles, il est possible de dupliquer la machine virtuelle du Back-Office pour en faire le Front-Office, seul un lien et quelques éléments de configuration seront différents (Apache et Ametys).

A la suite de l'installation, lors du premier accès à Ametys, il faut passer à la phase de configuration, décrite dans le manuel d'administration.

  1. Préparation
    1. Utilisateur et noms de domaine
      1. Back-office
      2. Front-office (dans le cas de deux serveurs)
  2. Back-office (CMS)
    1. Installation des pré-requis
      1. Apache HTTPD
      2. JVM
      3. Base de données
      4. Serveur applicatif
    2. Configuration
      1. Application
      2. Données
      3. Apache HTTPD
      4. JVM
      5. Base de données (SQL)
      6. Tomcat
      7. Applicatif
  3. Front-office (SITE)
    1. Installation des pré-requis
    2. Configuration
      1. Tomcat
      2. Apache
      3. Activation du vhost pour le front
      4. Base de données
      5. Applicatif
      6. Système
  4. Solr
    1. Déploiement
      1. Application
      2. Données
    2. Lancement
  5. Fin de l’installation

 

Préparation

Utilisateur et noms de domaine

Back-office

  • Créer un utilisateur ‘cms’ et le groupe ‘cms’  (voir la page astuces système pour créer un utilisateur)
  • Déclarer un DNS vers la machine, par exemple cmstest.mondomaine.com ou cms.mondomaine.com

Front-office (dans le cas de deux serveurs)

  • Créer un utilisateur ‘cms’ et le groupe 'cms'
  • Déclarer un DNS vers la machine, par exemple wwwtest.mondomaine.com ou www.mondomaine.com

Back-office (CMS)

Se connecter avec l’utilisateur cms.

Certaines installations nécessitent l’utilisateur root. Il est conseillé que l’utilisateur root délègue ensuite à l’utilisateur cms : les accès aux fichiers de configuration, le droit de relancer tomcat…

En tant que root, donner l’accès en exécution au répertoire cms

cd /home      
chmod 711 cms      

Installation des pré-requis

L'ensemble de l'installation des logiciels requis pour Ametys doit se faire avec l'utilisateur root. La gestion du lancement des applications sera ensuite déléguée à l'utilisateur cms.

Apache HTTPD

Pour communiquer sur le port 80 (HTTP) et/ou 443 (HTTPS), il est nécessaire d'installer Apache HTTPD 2.

Si vous avez installé Apache HTTPD 2 avec le package disponible dans le dépôt par défaut de votre OS, il sera configuré pour être lancé automatiquement (cf. section pré-requis). Sinon il est peut être nécessaire de configurer son lancement automatique (se référer au site http://httpd.apache.org ou à la documentation du système d’exploitation).

Les modules Apache suivants doivent être installés et activés :

  • deflate
  • expires
  • headers
  • mod_proxy
  • mod_proxy_http
  • mod_rewrite
  • mod_deflate

Il est possible que vous ayez besoin de modules supplémentaires selon votre utilisation.

Pour les activer, utiliser la commande a2enmod <nom_du_module>

a2enmod deflate expires headers proxy proxy_http rewrite deflate      

Pour fonctionner en https il vous faudra installer openssl via votre système de dépôt de votre OS.

Pour la prise en compte de https il vous faudra ajouter les modules suivants:

  • socache_shmcb
  • ssl
a2enmod socache_shmcb ssl     

JVM

Afin de faire fonctionner l'application, vous aurez besoin d'une JRE ou JDK 11 en 64 bits.

 Le chemin de la JVM va être référencé dans des scripts, il est donc conseillé de créer un lien symbolique du type java_11 > jdk-11.0.10+9.

Base de données

Seul MySQL est documenté mais l'installation avec un autre SGBD se déroule de manière équivalent. Se reporter aux manuels du SGBD choisi pour reproduire les étapes nécessaires.

Il est fortement conseillé de ne pas utiliser une base Derby en production pour les données. Vous pouvez par exemple installer MySQL et configurer son lancement automatique (se référer à la documentation http://www-fr.mysql.com/ ou à la documentation du système d’exploitation).

Si vous avez installé MySQL avec le package disponible dans le dépôt par défaut de votre OS, il sera configuré pour être lancé automatiquement (cf. section pré-requis). Sinon il est peut être nécessaire de configurer son lancement automatique (se référer au site http://www-fr.mysql.com/ ou à la documentation du système d’exploitation).

Sur certaines distributions (Exemple Debian 10) vous pourrez installer MariaDB à la place de MySQL.

Serveur applicatif

Seul Tomcat est documenté mais l'installation avec un autre serveur applicatif se déroule de manière équivalent. Se reporter aux manuels du serveur applicatif choisi pour reproduire les étapes nécessaires.

Ensuite, il est recommandé d'installer Tomcat 9.x.

Une version antérieure ne supportera pas Java 11.

Tomcat doit avoir le droit de lire et écrire dans le répertoire de l'application back-office et de l'application front-office. Vous pouvez par exemple faire "chown -R cms:cms" sur le répertoire de tomcat ou d'ajouter l'utilisateur cms au groupe tomcat

Configuration

Application

Télécharger l’application depuis le formulaire proposé sur le site web www.ametys.org/community.

Veiller à choisir l'onglet Application de déploiement les autres onglets correspondant à des packages d'installation automatiques à des fins de démonstration.

Il convient de transférer l'archive mise à disposition depuis ce formulaire sur votre serveur dans le répertoire /tmp ,en la renomant en "ametys.zip".
Par exemple si la version récupérée est "ametys-demo-4.3.12.zip" il conviendra d'exécuter les commandes suivantes:

cd /tmp      
mv ametys-demo-4.3.12.zip ametys.zip 

Nous allons créer l’arborescence applicative. Celle-ci ne doit jamais contenir d’espace !

Le répertoire racine est un sous-répertoire de celui de l’utilisateur cms : Ametys_CMS

Nous vous conseillons de créer un lien symbolique vers la dernière version du répertoire cms.
Lors des mises à jour il suffit ainsi de créer un nouveau répertoire de version puis de changer le lien symbolique : en cas de problème on peut basculer à nouveau sur la version précédente.

cd /home/cms      
mkdir Ametys_CMS      
cd Ametys_CMS      
mkdir application      
cd application      
mkdir tmp      
mkdir v1_0_0      

#Déploiement de l'application      
cd /home/cms/Ametys_CMS/application/v1_0_0      
unzip /tmp/ametys.zip      

#Création d'un lien vers la version courante      
cd ..      
ln -sf v1_0_0/cms cms      

La composition du fichier zip disponible sur le site est composé de :

  • un répertoire CMS pour le back-office
  • un répertoire SITE pour le front-office

Données

Il est nécessaire de séparer les données de l'application, ainsi, lors des mises à jour les données seront directement accessibles.

L'emplacement des données est défini par la variable d'environnement AMETYS_CMS_HOME, celle-ci est utilisée par l'application, il est préconisé de la définir au lancement.

#Préparation du répertoires de données      
cd /home/cms/Ametys_CMS      
mkdir ametys_cms_home
       
#Variables d'environnement      
export AMETYS_CMS_HOME=/home/cms/Ametys_CMS/ametys_cms_home

Faire de même pour la partie front-office avec la variable d'environnement AMETYS_SITE_HOME vers le dossier /home/cms/Ametys_CMS/ametys_site_home.

Apache HTTPD

Utiliser le fichier de configuration apache2.conf pour configurer Apache Httpd. 
Dans ce fichier il faut personnaliser les valeurs de répertoire (/home/cms/Ametys_CMS/application/cms), de nom de domaine (cms.mondomaine.com), de port tomcat (8080), etc. 
Penser aussi à activer les modules nécessaires (comme les mod_proxy* ou le mod_rewrite par exemple) : ils sont généralement déjà déclarés mais mis en commentaire.

Pièce jointe : httpd-cms.conf

#En tant que root:      
cd /etc/apache2/sites-available      
cp /tmp/httpd-cms.conf /etc/apache2/sites-available/000-httpd-cms.conf      
#Modifier le fichier pour remplacer cms.mondomaine.com...      
cd /etc/apache2/sites-enabled      
#Si besoin supprimer les sites inutiles (par exemple le site par default 000-default.conf)      
#Créer un lien pour déclarer le cms      
ln -sf ../      
ln -sf ../sites-available/000-httpd-cms.conf      
#Vérifier le chemin vers les logs (en fin de fichier)      

Apache 2.4
Le fichier httpd-cms.conf d'exemple est compatible avec Apache 2.4.

JVM

Si vous utilisez une authentification CAS et que votre certificat n’est pas « trusted », pensez à l’importer dans la JVM via l’utilitaire keytool.
L’exemple suivant importe le certificat dans le keystore par défaut. Si vous souhaitez vous pouvez l’importer dans un keystore différent.

 keytool -import -file cas-dev.anyware.cer -keystore /path/to/jvm/jre/lib/security/cacerts -trustcacerts -storepass changeit      

Base de données (SQL)

Depuis Ametys 4.0, il n'est plus nécessaire d'initialiser les tables des bases de données, il faut seulement créer les bases de données et les utilisateurs de celles-ci.

Puis dans notre cas, nous aurons besoin de créer trois bases de données :

  • L'une est destinée aux données du CMS (utilisateurs, groupes, formulaires, etc.)
  • L'autre aux données du site (utilisateurs, groupes, préférences, etc.)
  • Le dernier aux monitoring de l'application

A ces bases, nous associons un utilisateur "tout pouvoir"

mysql -u root -p      
#Sous MySQL      
create database Ametys_CMS;      
grant all privileges on Ametys_CMS.* to ametys_user identified by 'ametys_pwd';      
grant all privileges on Ametys_CMS.* to 'ametys_user'@'localhost' identified by 'ametys_pwd';      
       
FLUSH PRIVILEGES;      
exit      

Dans cet exemple le login est ametys_user. Le mot de passe utilisé est ametys_pwd : "identified by 'ametys_pwd';". Nous vous conseillons d'utiliser un autre login et un autre mot de passe.

Dans le cas où vous utilisez une base de données distante, vous aurez également besoin d'affecter les droits à l'IP ou au domaine du CMS. Vous aurez peut-être besoin d'adapter la configuration de Mysql (ou Maria DB) pour autoriser les connexions externes. Avant de l'utiliser dans Ametys, réalisez un test en ligne de commande depuis le serveur Ametys.

Un connecteur base de données est requis et dépend du choix de la base de données (MySQL, Oracle, Derby, PostgreSQL). Ce connecteur doit être copié dans le répertoire lib de l'application (back-office et front-office)
Pour MySQL :

Connecteur MySQL pour Java

wget -O /tmp/mysql-connector.tar.gz https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.23.tar.gz
cd /tmp/      
tar xzf mysql-connector.tar.gz      
cp mysql-connector-java-8.0.23/mysql-connector-java-8.0.23.jar /home/cms/Ametys_CMS/application/cms/WEB-INF/lib/      
cp mysql-connector-java-8.0.23/mysql-connector-java-8.0.23.jar /home/cms/Ametys_CMS/application/site/WEB-INF/lib/      

Tomcat

Par défaut, Tomcat est fourni avec quelques applications potentiellement inutiles. Il est conseillé de les effacer avec les instructions suivantes.

Nous vous conseillons de déployer tomcat dans le dossier /opt/tomcat/ et faire un lien symbolique de la version vers le dossier current.

#En tant que root      
cd /opt/tomcat/current/webapps      
rm -rf *      

Configurer tomcat en éditant le fichier /path/to/tomcat/conf/server.xml

exemple de fichier supportant toutes les configurations,
Il vous faudra commenter les Services en fonction de vos configurations. Ce fichier d'exemple est configuré pour des proxy http apache sur localhost avec les ports : BO http sur 8080, BO https sur 8082, FO http sur 8081 et FO https sur 8083. Il suffit alors d'adapter les proxy de vos vhosts apache en fonction de votre utilisation.

Au début du fichier, sélectionner un port libre de la machine : ce port est utilisé par tomcat en interne.

vi /opt/tomcat/current/conf/server.xml      
       
 <Server port="8005" ...      

En milieu de fichier, sélectionner un autre port libre de la machine : ce port sera utilisé pour accéder à tomcat. Sur cette même ligne ajouter l’instruction « proxyPort="80" » qui sert à faire un lien avec Apache HTTPD ou « proxyPort="443 scheme="https" » pour un serveur Apache en https. Toujours sur cette ligne ajouter l’instruction « URIEncoding="UTF-8" » qui indique l’encodage par défaut à utiliser lors du traitement des requêtes. Pour gagner en performances, la compression des fichiers texte (pages, fichiers CSS et javascript) peut être activée.

Configuration Tomcat pour un serveur Apache en HTTPConfiguration Tomcat pour un serveur Apache en HTTPS

 

<Connector port="8080"
proxyPort="80"
URIEncoding="UTF-8"
protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
compression="on"
compressableMimeType="text/html,text/xml, text/plain,text/javascript, application/javascript,text/css,application/json"
compressionMinSize="2048" />
     

 

 

 

<Connector port="8082"
proxyPort="443"
scheme="https"
secure="true"
URIEncoding="UTF-8"
protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
compression="on"
compressableMimeType="text/html,text/xml, text/plain,text/javascript, application/javascript,text/css,application/json"
compressionMinSize="2048" />      

 

 

Pensez à vérifier que les autres connecteurs soient commentés :

<!--      
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"      
maxThreads="150" scheme="https" secure="true"      
clientAuth="false" sslProtocol="TLS" />      
-->      
<!--      
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />      
-->      

Reste à adapter le tag Host en fonction de votre configuration.

Il faut ensuite préparer le répertoire applicatif et y déclarer l’application :

mkdir -p /opt/tomcat/current/conf/CatalinaBO/localhost
vim ROOT.xml      

Dans le fichier, éditer le contenu suivant en personnalisant les chemins :

<Context docBase="/home/cms/Ametys_CMS/application/cms" privileged="true" antiResourceLocking="false"></Context>      

Si vous avez installé Tomcat avec le package disponible dans le dépôt par défaut de votre OS, il sera configuré pour être lancé automatiquement (cf. section pré-requis). Sinon il est peut être nécessaire de configurer son lancement automatique (se référer au site http://tomcat.apache.org ou à la documentation du système d’exploitation).

Pour configurer tomcat avec systemd:

vi /etc/systemd/system/tomcat.service
systemctl daemon-reload

Exemple de configuration de fichier de service (à adapter en fonction de vos configurations)

[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
EnvironmentFile=/home/cms/Ametys_CMS/setenv-ametys.sh
Environment=JAVA_HOME=/usr/lib/jvm/java-default
Environment=CATALINA_PID=/opt/tomcat/current/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat/current
Environment=CATALINA_BASE=/opt/tomcat/current
Environment='UMASK=0022'
ExecStart=/opt/tomcat/current/bin/startup.sh
ExecStop=/opt/tomcat/current/bin/shutdown.sh
User=cms
Group=cms
UMask=0022
RestartSec=10
Restart=always
LimitNOFILE=20000
[Install]
WantedBy=multi-user.target

Exemple de fichier de configuration setenv-ametys.sh pour positionner les dossiers AMETYS_*_HOME (en tant que utilisateur cms, dans le dossier /home/cms/Ametys_CMS):

#!/bin/sh
AMETYS_CMS_HOME="/home/cms/Ametys_CMS/ametys_cms_home"
AMETYS_SITE_HOME="/home/cms/Ametys_CMS/ametys_site_home"
export AMETYS_CMS_HOME
export AMETYS_SITE_HOME
CATALINA_OPTS="-Xmx5G -Xms512m -server"
JAVA_OPTS="-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom -Dderby.stream.error.file=/home/cms/Ametys_CMS/ametys_cms_home/logs/derby.log -Duser.country=FR -Duser.language=fr -Dcom.sun.jndi.ldap.connect.pool.protocol='plain ssl' -Dcom.sun.jndi.ldap.connect.pool.timeout=6000 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/cms/Ametys_CMS/ametys_cms_home/logs/heapdump.log -XX:ErrorFile=/home/cms/Ametys_CMS/ametys_cms_home/logs/java_error%p.log"
export CATALINA_OPTS
export JAVA_OPTS

Vous pouvez lancer et arrêter le serveur avec les commandes suivantes (ces commandes sont à exécuter en tant que root) :

service tomcat start
service tomcat start

Droit à l'utilisateur cms pour lancer apache et tomcat avec un sudo, créez un fichier /etc/sudoers.d/cms-sudoers (à adapter en fonction de vos pré-requis de sécurité)

%cms ALL=NOPASSWD: /etc/init.d/apache2, /bin/systemctl * tomcat, /usr/sbin/service tomcat*, /bin/systemctl * solr, /usr/sbin/service solr*, /sbin/ifconfig

Ainsi Tomcat pourra être lancé en tant que cms avec la commande:

sudo service tomcat start      

Applicatif

Le paramétrage applicatif est réalisé via une interface dédiée, pour cela http://<webapps_cms>/_admin (login/mot de passe par défaut: admin/admin).

Nous vous invitons à utiliser la documentation en ligne : Manuel d'administration

Pour plus de détails voir le stockage des données dans le manuel d'exploitation.

En général nous avons les valeurs suivantes :

 

Front-office (SITE)

L'application back-office doit fonctionner correctement avant de commencer l'installation de l'application front-office.

Installation des pré-requis

L’installation du front-office est proche de celle du back-office :

  • Dans le cas d’utilisation de machines distinctes, installer Apache HTTPD ainsi que la JVM puis les configurer.
  • Installer Tomcat puis le configurer.

Configuration

Le répertoire applicatif doit avoir la structure suivante :

  • /home/cms/Ametys_CMS/application/site -> v1_0_0/site

Tomcat

Configurez tomcat de la même manière que pour le back-office, mis à part le fait que le host sera localhost afin de servir tous les sites via la même webapps.

Pour ce faire il faut éditer le fichier pour configurer l'accès à l'application (vous pouvez utiliser le fichier d'exemple proposé pour le back-office et commenter la partie Service BO):

 vi /opt/tomcat/current/conf/server.xml      

Si vous avez plusieurs Tomcat sur la même machine, assurez-vous que les ports utilisés sont différents.

Ajoutez le fichier ROOT.xml correspondant

mkdir -p /opt/tomcat/current/conf/CatalinaFO/localhost
vi ROOT.xml      
<Context docBase="/home/cms/Ametys_CMS/application/site" privileged="true" antiResourceLocking="false"></Context>          

Apache

Ces opérations sont à exécuter en tant que root.

Pour l'application front-office, les modules Apache suivants doivent être installés et activés :

  • mod_proxy
  • mod_proxy_http
  • mod_rewrite
  • mod_deflate
  • mod_expires
  • mod_unique_id
  • mod_headers

Si vous utilisez le même Apache pour le back-office et le front-office, pensez à rajouter les modules manquants.

Pour fonctionner en https il vous faudra installer openssl via votre système de dépôt de votre OS.

Pour la prise en compte de https il vous faudra ajouter les modules suivants:

  • socache_shmcb
  • ssl
a2enmod socache_shmcb ssl     

Comme pour la configuration du CMS, utilisez le fichier de configuration joint pour paramétrer Apache Httpd pour l'application site (ceci est un exemple à adapter en fonction de votre environnement).
Dans ce fichier il faut personnaliser:

  • les valeurs de répertoire (/home/cms/Ametys_CMS/application, /home/cms/Ametys_CMS/ametys_site_home/cache),
  • de nom de domaine ($domain par www.mondomaine.com),
  • de port tomcat (8083 par votre port tomcat),
  • nom du site ($siteid par l'identifiant de votre site)
  • le nom de la skin ($skin par le nom du dossier de la skin ametys pour ce site)

Il faudra déclarer un nouveau Virtual Host par site. 

Pièce jointe : httpd-site.conf

Pages d'erreurs
Les pages d'erreurs sont gérés par le site pour pouvoir être disponibles lorsque le CMS n'est pas disponible. Cela implique de définir les pages d'erreurs de façon spécifique pour chaque charte graphique.
Dans les règles Apache du site, il faut activer le module mime et ajouter des langues :

LoadModule mime_module modules/mod_mime.so      

<IfModule mime_module>      
    AddHandler type-map var      
    AddLanguage fr .fr      
    AddLanguage en .en      
    DefaultLanguage fr      
</IfModule>      

Puis rediriger l'erreur 404 vers la bonne URL, de même pour les autres erreurs :

ProxyErrorOverride On      
ErrorDocument 404 /error/404.html      

Et rediriger l'erreur et ses ressources vers les fichiers correspondants :

RewriteRule    ^/error/(.+)$  /home/cms/Ametys_CMS/application/site/skins/MASKIN/error/$1 [L]] ]>

Pensez à remplacer MASKIN par le nom de votre charte graphique. Si votre site change de charte graphique, il faudra également penser à modifier le fichier httpd-site.conf.

Si vous souhaitez gérer les erreurs côté CMS, il suffit de commenter ces lignes.

Si vous souhaitez activer les statistiques de l'utilisation du cache, les lignes contenant AMETYS_PROXY_PASS ne doivent pas être supprimés, ni modifiés (ne surtout pas modifier le LogFormat).

En revanche, si vous savez que vous n'utiliserez pas cette fonctionnalité, vous pouvez adapter ces lignes de la configuration si besoin (notamment le LogFormat pourra être adapté ou supprimé).

Performances

A chaque fois qu'une page est servie, même si elle et ses ressources sont entièrement mises en cache, le navigateur lancera de toute manière une série de requêtes pour s'assurer qu'il a bien la dernière version des CSS, des images, ou des JS.

Afin d'obtenir une impression de vitesse bien supérieure pour l'utilisateur final, il est possible de configurer Apache afin qu'il indique au navigateur que toute CSS chargée est valable pour 20 minutes : ainsi, en navigant de pages en pages, toutes les ressources communes de la charte graphique ne seront jamais rechargées.

La contre partie est qu'en conséquence, si vous modifiez votre charte graphique, un visiteur pourra continuer d'utiliser les vieilles versions des images, js et CSS pendant un certain temps : si c'est une chose que vous faites fréquemment, il ne faut peut être pas mettre en place cette optimisation, ou bien baisser la durée de validée à seulement quelques minutes.

Pour mettre en place l'optimisation, il faut d'une part charger le module expires (une seule fois)

LoadModule expires_module      

et d'autre part, mettre les instructions suivantes (à la racine, ou pour chaque virtualhost) (ceci est un exemple à adapter en fonction de vos besoin)

<IfModule expires_module>      
  ExpiresActive On      
  ExpiresDefault "access plus 1 seconds"      
  ExpiresByType text/html "access plus 1 seconds"      
  ExpiresByType image/gif "access plus 20 minutes"      
  ExpiresByType image/jpeg "access plus 20 minutes"      
  ExpiresByType image/png "access plus 20 minutes"      
  ExpiresByType text/css "access plus 20 minutes"      
  ExpiresByType text/javascript "access plus 20 minutes"      
  ExpiresByType application/x-javascript "access plus 20 minutes"      
  ExpiresByType application/javascript "access plus 20 minutes"      
  ExpiresByType text/xml "access plus 20 minutes"      
</IfModule>      

Activation du vhost pour le front

#En tant que root:      
cd /etc/apache2/sites-available      
cp /tmp/httpd-cms.conf /etc/apache2/sites-available/001-httpd-site.conf      
#Modifier le fichier pour remplacer cms.mondomaine.com...      
cd /etc/apache2/sites-enabled      
#Si besoin supprimer les sites inutiles (par exemple le site par default 000-default.conf)      
#Créer un lien pour déclarer le cms      
ln -sf ../      
ln -sf ../sites-available/001-httpd-site.conf      

Base de données

De la même manière que l'application back-office, il n'est pas nécessaire de créer les tables pour initialiser la base de données, il faut avoir créé la ou les bases avec son ou ses utilisateurs associés.

Applicatif

Redémarrez Apache et Tomcat :

#Création d'un lien vers la version courante      
cd /home/cms/Ametys_CMS/application      
ln -sf v1_0_0/site site      

 

Il reste à configurer l’application site de la même manière que l’application CMS : http://<webapps_site>/_admin.

Nous vous invitons à utiliser la documentation en ligne : Page Créer un nouveau site / Rubrique Configuration du site

En général nous avons les valeurs suivantes :

  • URL du CMS : http://<nom de domaine>:8080
    Valeur utilisée en accès interne par l'application

Système

Penser à ajouter les sudoers via la commande visudo pour le tomcat site.

 

Solr

Ametys requiert une seule instance de SOLR. Nous vous recommandons d'installer SOLR sur le serveur du back-office et de configurer les communications entre Ametys Back-office et SOLR via localhost.

Déploiement

Application

Téléchargez la version de SOLR correspondant à la version d'Ametys que vous utilisez : http://releases.ametys.org/releases/org.ametys/solr-app/

Déployez cette version dans /home/cms/Ametys_CMS/application/<numéro de version> (en tant qu'utilisateur cms)

Créez un lien symbolique /home/cms/Ametys_CMS/application/solr -> <numéro de version>/solr afin de pouvoir en changer facilement.

Données

De la même manière que les données, l'indexation doit être séparée de l'application et de Solr, ainsi lors des mises à jour, il n'est pas nécessaire de relancer une indexation totale (tant que le modèle n'a pas changé).

L'emplacement des données d'indexation est défini dans la variable d'environnement SOLR_HOME.

#Création du répertoire d'indexation /home/cms/Ametys_CMS/ametys_solr_home
cd /home/cms/Ametys_CMS      
mkdir ametys_solr_home      

Voici un exemple de fichier de configuration de l'environnement pour SOLR (à adapter en fonction de votre configuration)

vi setenv-solr.sh
#!/bin/sh
SOLR_JAVA_HOME="/usr/lib/jvm/java-default"
SOLR_JAVA_MEM="-Xmx1G -Xms1G"
SOLR_HOME="/home/cms/Ametys_CMS/ametys_solr_home"
SOLR_LOGS_DIR="/home/cms/Ametys_CMS/ametys_solr_home/logs"
SOLR_OPTS="-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$SOLR_LOGS_DIR/heapdump.log -XX:ErrorFile=$SOLR_LOGS_DIR/java_error%p.log"
SOLR_TIMEZONE=`date '+%Z'`

Vérifiez que ces fichiers sont bien executable pour l'utilisateur cms:

  • /home/cms/Ametys_CMS/setenv-solr.sh
  • /home/cms/Ametys_CMS/application/solr/bin/solr

Configurez l'environnement de SOLR et l'utilisateur d'execution:

vi /home/cms/Ametys_CMS/application/solr/bin/init.d/solr
SOLR_INSTALL_DIR="/home/cms/Ametys_CMS/application/solr"
SOLR_ENV="/home/cms/Ametys_CMS/setenv-solr.sh"
RUNAS="cms"

Créer des liens symboliques :

  • /home/cms/Ametys_CMS/ametys_solr_home/solr.xml -> /home/cms/Ametys_CMS/application/solr/server/solr/solr.xml
  • /home/cms/Ametys_CMS/ametys_solr_home/configsets -> /home/cms/Ametys_CMS/application/solr/server/solr/configsets

Lancement

Solr doit de préférence être démarré avant le back-office.

Voici un exemple de fichier de configuration (à adapter en fonction de votre configuration) pour lancer SOLR en tant que service systemd (/etc/systemd/system/solr.service):

[Unit]
Description=Apache SOLR
ConditionPathExists=/home/cms/Ametys_CMS/application/solr
After=syslog.target network.target remote-fs.target nss-lookup.target systemd-journald-dev-log.socket
Before=multi-user.target
Conflicts=shutdown.target

[Service]
User=cms
Group=cms
LimitNOFILE=1048576
LimitNPROC=1048576
PIDFile=/home/cms/Ametys_CMS/ametys_solr_home/solr-8983.pid
Environment=SOLR_INCLUDE=/home/cms/Ametys_CMS/setenv-solr.sh
Environment=RUNAS=cms
Environment=SOLR_INSTALL_DIR=/home/cms/Ametys_CMS/application/solr

Restart=on-failure
RestartSec=5
startLimitIntervalSec=60

ExecStart=/home/cms/Ametys_CMS/application/solr/bin/solr start -f
ExecStop=/home/cms/Ametys_CMS/application/solr/bin/solr stop
PrivateTmp=true
Restart=on-failure

[Install]
WantedBy=multi-user.target

Faites un reload des services systemd. 

Adaptez ulimit pour répondre aux pre-requis de SOLR (pour le compte cms, si vous avez créé celui-çi, utilisateur qui lance solr ou tomcat)

vi /etc/security/limits.conf
cms hard nofile 65535
cms soft nofile 65535
cms hard nproc 65535
cms soft nproc 65535

Fin de l’installation

L’installation est terminée. 

Nous vous invitons à jeter un coup d’œil au guide d'exploitation technique d'Ametys contenant des détails sur les opérations de maintenance de l'application et diverses astuces d'exploitation.

 

Retour en haut

Manuel d'installation et d'exploitation