Installation serveur

  1. Introduction
  2. Architecture
  3. Prérequis
    1. Matériels
      1. Vérification des prérequis
    2. Logiciels
      1. Back-office
      2. Front-office
      3. Information
      4. Vérification des prérequis
    3. Autres
      1. Back-office
      2. Front-office
  4. Installation
    1. Back-office (CMS)
      1. Apache HTTPD
      2. JVM
      3. MySQL
      4. Tomcat
      5. Configuration
        1. Application
        2. Apache HTTPD
        3. JVM
        4. MySQL
        5. Tomcat
        6. Alias
        7. Applicatif
    2. Front-office (SITE)
      1. Tomcat
      2. Apache
      3. Applicatif
      4. Système
  5. Fin de l’installation
  6. Astuces systèmes
    1. Création de l’utilisateur cms
    2. Liste des utilisateurs (avancé)
    3. Liste des groupes (avancé)
    4. Crypter un mot de passe (avancé)
    5. Installer un package
    6. wget
    7. unzip
    8. Apache 2
      1. Installation
      2. Modules
    9. MySQL
    10. JVM
    11. Tomcat
    12. Virtual Host Apache
    13. SeLinux
    14. Nombre de fichiers ouverts
    15. vi – éditeur par défaut
    16. vi - remplacement de chaines de caractères

 

Introduction

Le présent document contient les instructions pour une première installation du CMS Ametys sur un serveur Linux (cependant l'installation des applications est tout à fait faisable sous Windows).

Le CMS Ametys se compose de 2 applications :

  • back-office (ou CMS)
  • front-office (ou SITE)

Le composant CMS back-office est accédé par les contributeurs pour l'édition du contenu des différents sites web. Il se présente comme une application web développée avec les technologies J2EE 6 et déployée dans un serveur d'application Apache Tomcat.

Le composant CMS front-office est accédé par les visiteurs pour la consultation des sites web. Il se présente comme une application web développée avec les technologies J2EE 6 et déployée dans un serveur d'application Apache Tomcat.

Il est conseillé de lire ce guide en entier avant de commencer l’installation.

 

Commentaires
Si vous avez besoin d'aide pour installer le , n'hésitez pas à demander de l'aide sur les forums. Vous pouvez aussi contribuer à l'amélioration de cette documentation en ajoutant vos commentaires.

Astuces
Des astuces concernant l'optimisation de l'installation sont disponibles en fin de guide.

 

Architecture

Notes et Recommandations
- Le serveur HTTP recommandé est Apache HTTPD.
- Le moteur de servlet J2EE recommandé est Apache Tomcat.
- L’implémentation JCR utilisée en interne est Apache JackRabbit.
- La base de données SQL recommandée est MySQL. Cependant, Oracle et Derby sont aussi supportés (PostgreSQL est supporté de manière incomplète pour le moment).

La communication entre le back-office et le front-office s’effectue à deux niveaux par le biais de web-services :

  • Le back-office doit pouvoir annuler le cache du front-office (par le biais d’une requête http).
  • Le front-office doit pouvoir demander la génération unitaire d’une page (par le biais d’une requête http).

Le back-office utilise les schéma d'URL suivants pour parler au front-office :

  • <map:match pattern="_invalidate-site/*">

  • <map:match pattern="_invalidate-skin/*">
  • <map:match pattern="_invalidate-page/*/**">

  • <map:match pattern="_invalidate-images/**">

où  * = n'importe quel caractère sauf '/'
** = n'importe quel caractère y compris '/'

Ainsi si on souhaite empêcher un composant extérieur à l'application d'effacer le cache, il y a deux solutions :

  • Faire en sorte d'interdire ces URLs par Apache et faire en sorte que le CMS parle au Tomcat du front-office directement.
  • Protéger ces URLs pour qu'elles ne soient accessibles que par l' IP de l'application du back-office.

Les deux applications (back-office et front-office) communiquent en HTTP. Elles peuvent être sur deux machines différentes ou sur la même. Et, dans ce dernier cas, elle peuvent aussi être sur un seul Tomcat ou deux Tomcat séparés.
Sinon il est possible d'utiliser le protocole AJP pour faire communiquer Apache et Tomcat, mais dans ce cas, nous conseillons de laisser tout de même le port de Tomcat activé (généralement 8080) à des fins de test ou de debug.

Prérequis

 

Matériels

La configuration serveur conseillée pour une utilisation optimale mono-serveur est la suivante :

  • Architecture 64 Bits

  • Processeur multi coeurs (Exemple: Processeur 4 Core Intel® Xeon® E3, 3.4GHz ou +) ;

  • 12 Go Ram (2Go système + 10Go applicatif)

  • Disque dur en raid 5

  • Espace disque de 300 Go (à ajuster en fonction de l’utilisation : nombre d’images, nombre de vidéo, nombre de documents à gérer…)

  • Système d’exploitation linux 64 Bits

 

La  configuration serveur conseillée pour une utilisation intensive est la suivante :

Back-officeFront-office
  • Architecture 64 Bits
  • Processeur 4 Core Intel® Xeon® E5, 3.6GHz ou +
  • 10 Go Ram (2Go système + 8Go applicatif)
  • Disque dur en raid 5 SSD ou SAS
  • Espace disque de 200 Go (à ajuster en fonction de l’utilisation : nombre d’images, nombre de vidéo, nombre de documents à gérer…)
  • Système d’exploitation linux 64 Bits
  • Architecture 64 Bits
  • Processeur 4 Core Intel® Xeon® E5, 3.6GHz ou +
  • 4 Go Ram (2Go système + 2Go applicatif)
  • Disque dur en raid 5 SSD ou SAS
  • Espace disque de 100 Go (à ajuster en fonction de l’utilisation : nombre d’images, nombre de vidéo, nombre de documents à gérer…)
  • Système d’exploitation linux 64 Bits

Cette configuration peut être ajustée en fonction des plugins du projet.

La virtualisation est possible et même conseillée afin de simplifier la duplication, les sauvegardes et les modifications d’architecture.

Vérification des prérequis
  • Vérification du processeur :

    less /proc/cpuinfo 
  • Vérification de la ram :

    less /proc/meminfo 
  • Vérification de l’espace disque disponible :

    df -h 
  • Vérification de l’OS :

    uname -a 

 

Logiciels

Des méthodes et astuces sur l'installation des logiciels sont disponbles en bas de page dans la section .

En plus de l’application livrée, les logiciels suivants vont être installés :

Back-office
  • Système d’exploitation 64 bits supportant l’UTF-8 par défaut (exemple Ubuntu)
  • Apache httpd 2.x 64 bits
  • JVM 1.8.x 64 bits version SUN;
  • MySQL V5 64 bits
  • Tomcat 8 ou + et 64 bits
Front-office
  • Système d’exploitation 64 bits supportant l’UTF-8 par défaut (exemple Ubuntu)
  • Apache httpd 2.x 64 bits
  • JVM 1.8.x 64 bits version SUN;
  • MySQL V5 64 bits
  • Tomcat 8 ou + et 64 bits
Information

Si on installe une seule machine pour les 2, l'apache et la jvm peuvent bien sûr être partagés. En ce qui concerne le tomcat, mieux vaut les séparer.

Pour des raisons de performances et de sécurité, Apache HTTPD est en charge de répondre aux requêtes pour des ressources statiques du CMS et front-office.

La base de données MySQL (ou un autre SGBD utilisé) sert à sauver des informations secondaires (droits, workflow…).

Vérification des prérequis

Version de la JVM :

 java -version 

Version de apache httpd et tomcat : si vous les avez installés via le système de paquet de votre distribution, vous pourrez trouver la version via l’interface de consultation des paquets installés. S’il s’agit de la version téléchargée depuis le site, reportez-vous aux release-notes qui se trouvent dans le répertoire du tomcat (ou httpd), le numéro de version figure en début de fichier.

Version du serveur mysql :

  1. se connecter au serveur (suivant la configuration, il se peut que vous ayez à préciser un login, un mot de passe et un nom de base de données)
  2. exécuter la commande « status »

Autres

Back-office
  • Créer un utilisateur ‘cms’.
  • Déclarer un DNS vers la machine.
  • Récupérer le certificat CAS (si non « trusted ») dans le cas d’une telle authentification.
Front-office
  • Créer un utilisateur ‘cms’
  • Déclarer un DNS vers la machine.

 

Installation

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…

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

cd /home 
chmod 711 cms 
Apache HTTPD

Ces commandes sont à exécuter en tant que root :

  • Installer Apache Httpd 2

Si vous avez installé Apache HTTPD 2 avec le package disponible dans le dépôts 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 :

  • mod_proxy
  • mod_proxy_http
  • mod_rewrite
  • mod_deflate

Pour les activer, utiliser la commande a2enmod <nom_du_module>

JVM

Ces commandes sont à exécuter en tant que root :

  • Installer la JVM

 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_6 -> java_1.6.18.

MySQL

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.

Ces commandes sont à exécuter en tant que root :

  • 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ôts 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).

Ces commandes sont à exécuter en tant que cms:

  • Créer une base de donnée et un utilisateur tout pouvoir associé en utilisant les commandes ci-dessous :
mysql -u root 
#Sous MySQL 
create database Ametys_CMS; 
grant all privileges on Ametys_CMS.* to ametys identified by 'cms'; 
grant all privileges on Ametys_CMS.* to 'ametys'@'localhost' identified by 'cms'; 
FLUSH PRIVILEGES; 
exit 
Tomcat

Ces commandes sont à exécuter en tant que root :

  • Installer Tomcat (cf. section pré-requis)

Nous vous conseillons d'utiliser un lien symbolique pour référencer votre tomcat. Par exemple tomcat -> tomcat-8.8.29

ln -sf apache-tomcat-8.5.29 tomcat 

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.

Configuration
Application

Télécharger l’application depuis le site web d'Ametys à la page de téléchargement, rubrique Application de déploiement.
Vous pouvez aussi noter le lien de téléchargement de la dernière version (du type : http://releases.ametys.org/releases/org.ametys.template/cmsweb/3.4.x/3.4.0/zips/ametys-3.4.0.zip) et exécuter le script suivant.

cd /tmp 
wget http://releases.ametys.org/releases/org.ametys.template/cmsweb/3.4.x/3.4.0/zips/ametys-3.4.0.zip -O /tmp/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 
cd 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 
ln -sf v1_0_0/site site 

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
#Préparation des répertoires de données: 
cd /home/cms/Ametys_CMS 
mkdir data 
cd data 
mkdir repository 
Apache HTTPD

Utiliser le fichier de configuration httpd.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 jointehttpd-cms.conf

JVM

Si vous utilisez 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 
MySQL

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 faut insérer les scripts SQL de création de tables.
Dans le répertoire cms/WEB-INF/scripts/mysql se trouvent les fichiers à insérer (il y en a aussi dans les sous-répertoires). Pour chaque fichier exécuter la commande suivante :

mysql Ametys_CMS -u ametys -p --default-character-set=utf8 < filename.sql 

Un seul fichier jdbc_users*.sql doit être inséré. Le fichier jdbc_users.sql permet de gérer les utilisateurs en base de données avec un système d'authentification tierce tel que CAS. Le fichier jdbc_users_auth.sql permet de gérer les utilisateurs en base de données en incluant le mot de passe (les mots de passe seront stockés encryptés dans la base de données). En général ou si vous ne savez pas lequel utiliser, optez pour jdbc_users_auth.sql.

En général il faut importer :

mysql Ametys_CMS -u ametys -pcms --default-character-set=utf8 < profile_rights.sql 
mysql Ametys_CMS -u ametys -pcms --default-character-set=utf8 < newsletter.sql 
mysql Ametys_CMS -u ametys -pcms --default-character-set=utf8 < jdbc_groups.sql 
mysql Ametys_CMS -u ametys -pcms --default-character-set=utf8 < jdbc_users_auth.sql 
mysql Ametys_CMS -u ametys -pcms --default-character-set=utf8 < user_prefs_fo.sql 
mysql Ametys_CMS -u ametys -pcms --default-character-set=utf8 < user_prefs.sql 
mysql Ametys_CMS -u ametys -pcms --default-character-set=utf8 < jdbc_cache_mon.sql 

Le répertoire Scripts contient aussi les scripts à importer pour d'autres SGBD (Oracle, Derby, PostgreSQL)

Tomcat

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

cd /usr/local/tomcat/webapps 
rm -rf * 

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

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

 <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. 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.

<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,text/css,application/json" 
 compressionMinSize="2048" /> 

Pensez à vérifier que les autres connecteurs sont 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" /> 
--> 

En fin de fichier, Tomcat définit la liste des « hosts » connus. Par défaut seul localhost est présent. Vous pouvez remplacer localhost par votre DNS (attention, à changer aussi le host par défaut).

<Engine name="Catalina" defaultHost="cms.nomdomaine.com"> 
 <Realm className="org.apache.catalina.realm.UserDatabaseRealm" ResourceName="UserDatabase"/> 
 <Host name=" cms.nomdomaine.com" appBase="webapps" unpackWARs="true" 
 autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> 
 </Host> 
</Engine> 

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

cd /usr/local/tomcat/conf/Catalina 
rm -rf localhost 
mkdir cms.nomdomaine.com 
cd cms.nomdomaine.com 
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" antiJARLocking="false"> 
</Context> 

Si vous avez installé Tomcat avec le package disponible dans le dépôts 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).

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

/etc/init.d/tomcat start 
/etc/init.d/tomcat stop 

Droit à l'utilisateur cms pour lancer apache et tomcat avec un sudo

visudo 

#Ajouter cette ligne à la fin du fichier 
%cms ALL=NOPASSWD: /etc/init.d/httpd, /etc/init.d/tomcat 

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

sudo /etc/init.d/tomcat start 
Alias

Ajouter l’alias ll et l’alias taillogs.

cd 
vi .bashrc 

En général il suffit de supprimer le commentaire devant la ligne

alias ll='ls -l' 

Ajouter un alias spécifique pour afficher les logs en temps réel, le chemins sont à ajuster :

#Alias permettant d'afficher les logs à l'aide de la fonction tail 
alias taillogs='tail -f /usr/local/tomcat/logs/* 
/home/cms/Ametys_CMS/application/cms/WEB-INF/logs/* 
/home/cms/Ametys_CMS/application/site/WEB-INF/logs/*' 

A noter que parfois les alias sont dans un autre fichier (ce fichier étant appelé par le .bashrc) :

 vi .bash_aliases 
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.

Front-office (SITE)

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.

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 :

 vi /usr/local/tomcat/conf/server.xml 
<Host name="localhost" appBase="webapps" 
 unpackWARs="true" autoDeploy="true" 
 xmlValidation="false" xmlNamespaceAware="false"> 

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

cd /usr/local/tomcat/conf/Catalina/ 
#Vous pouvez aussi copier une webapps existante et simplement modifier le fichier ROOT.xml (pensez à copier dans un fichier .bak) 
mkdir localhost 
cd localhost 
vi ROOT.xml 
<Context docBase="/home/cms/Ametys_CMS/application/site" privileged="true" 
 antiResourceLocking="false" antiJARLocking="false"> 
</Context> 
#Enregistrez 
cp ROOT.xml ROOT.xml.bak 
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.

 

Comme pour la configuration du CMS, utilisez le fichier de configuration joint pour paramétrer Apache Httpd pour l'application site.
Dans ce fichier il faut personnaliser les valeurs de répertoire (/home/cms/Ametys_CMS/application, /home/cms/Ametys_CMS/data), de nom de domaine (www.mondomaine.com), de port tomcat (PORT_TOMCAT), nom du site (INTERNALSITENAME), etc...

Il faudra déclarer un nouveau Virtual Host par site (en remplaçant la valeur INTERNALSITENAME par le nom du site : www, blog, demo, etc...). En revanche les premières lignes du fichier joint (LoadModule, IfModule) sont générale, il ne faut les inclure qu'une seule fois.

Pièce jointehttpd-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]] ]></ac:plain-text-body></ac:structured-macro><p>Pensez à remplacer MASKIN par le nom de votre charte graphique. Si votre site change de charte graphique, il faudra également pense à modifier le fichier httpd-site.conf.</p><p>Si vous souhaitez gérer les erreurs côté CMS, il suffit de commenter ces lignes.</p></ac:rich-text-body></ac:structured-macro><ac:structured-macro ac:name="warning"><ac:rich-text-body><p>Si vous souhaitez activer les statistiques de l'utilisation du cache, les lignes contenant <em>AMETYS_PROXY_PASS</em> ne doivent pas être supprimés, ni modifiés (ne surtout pas modifier le LogFormat).<br />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é).</p></ac:rich-text-body></ac:structured-macro><ac:structured-macro ac:name="tip"><ac:parameter ac:name="title">Performances</ac:parameter><ac:rich-text-body><p>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.</p><p>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.</p><p>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.</p><p>Pour mettre en place l'optimisation, il faut d'une part charger le module expires (une seule fois)</p><ac:structured-macro ac:name="code"><ac:plain-text-body><![CDATA[LoadModule expires_module 

et d'autre part, mettre les instructions suivantes (à la racine, ou pour chaque virtualhost)

<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> 

 

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 :

  • Cache : file:///home/cms/Ametys_CMS/data/cache

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

  • Destination des uploads : /home/cms/Ametys_CMS/data/uploads
    Répertoire temporaire utilisé pour stocker des fichiers en cours d'envoi vers le serveur.
Système

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

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.

 

Astuces systèmes

Création de l’utilisateur cms
#connexion en tant que root 
#Ajout de l'utilisateur cms 
useradd -m -s /bin/bash cms 
#Définition du mot de passe de l'utilisateur cms : générer un mot de passe http://www.pctools.com/guides/password/?length=8&phonetic=on&alpha=on&mixedcase=on&numeric=on&nosimilar=on&quantity=3&generate=true#password_generator 
passwd cms 

#login en tant que cms 
su - cms 
#Gestion des droits du répertoire /home/cms 
cd /home 
chmod 711 cms 
Liste des utilisateurs (avancé)
#Récupération des anciens login utilisateurs 
cat /etc/passwd 
Liste des groupes (avancé)
#Récupération des groupes (lié aux utilisateurs) de l'ancien serveur: 
cat /etc/group 
Crypter un mot de passe (avancé)
#Cryptage du mot de passe: 
perl -e 'print crypt("password", "NSc!ne1d@nyw&"),"\n"' 

La commande useradd peut contenir un paramètre –p qui permet de positionner le mot de passe (crypté)

Installer un package

L’installation d’un package dépend de l’OS disponible.

 Mise à jour du dépôtRechercher un packageInstaller un package
Ubuntu
La documentation est en ligne : http://doc.ubuntu-fr.org/apt-get
apt-get update apt-cache search <word1 word2 ...> apt-get install <paquet(s)> 
Redhat, Fedora
http://doc.fedora-fr.org/wiki/YUM_:_Configuration_du_gestionnaire_de_paquets
yum updateyum list <nom du paquet>
yum search <mot clef> 
yum install <nom du paquet> 
wget

Exemple pour Ubuntu

apt-get install wget 
unzip

Exemple pour Ubuntu

apt-get install unzip 
Apache 2
Installation

Apache s’installe soit dans /etc/httpd soit dans /etc/apache2

Exemple pour Ubuntu

#En tant que root, installer Apache2 
apt-get update 
apt-get install apache2 
#apache2 est installé dans /etc/apache2/ 
Modules
#Configuration de Apache: ajout des modules 
cd /etc/apache2/mods-enabled 
ln -sf ../mods-available/proxy_ajp.load 
ln -sf ../mods-available/proxy.conf 
ln -sf ../mods-available/proxy_http.load 
ln -sf ../mods-available/proxy.load 
ln -sf ../mods-available/rewrite.load 

La commande a2enmod permet d’activer un module dans apache2, par exemple :

a2enmod proxy proxy_http rewrite 
MySQL

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.

 

Exemple pour Redhat / Fedora

yum install mysql.x86_64 
yum install mysql-server 
/etc/init.d/mysqld start 
#Définir un mot de passe root, exemple 'MonMotDePasse' 
/usr/bin/mysqladmin -u root password 'MonMotDePasse' 

 

JVM

Aller sur le site web d'Oracle pour trouver le lien vers la dernière version de la JRE 1.8 (http://www.oracle.com/technetwork/java/javase/downloads/index.html)

Exemple :

Exemple

#Install de java6 
# Téléchargement du jre d'Oracle (remplacez le lien http par celui pointant vers la dernière version du jre 1.6) 8
wget http://download.oracle.com/otn-pub/java/jdk/6u26-b03/jre-6u26-linux-x64.bin -O /tmp/jre-oracle.bin 
# Renommer et donner les droits d'exécution 
chmod ugo+x /tmp/jre-sun.bin 
# Création du répertoire /jvm dans /usr/lib 
cd /usr/lib 
mkdir jvm 
cd jvm 
/tmp/jre-sun.bin 
Tomcat

Tomcat est généralement installé dans /etc/tomcat6/ sur Ubuntu et dans /opt/ sur RedHat.

Exemple pour Ubuntu

#En tant que root, installer tomcat 
apt-get update 
apt-get install tomcat8
#tomcat8 est installé dans /etc/tomcat8
#Un lien sera créé plus tard en fonction des besoins. 
Virtual Host Apache

Sur certains OS la configuration d’Apache est dans le fichier conf/httpd.conf. Sur Ubuntu ce fichier existe mais est vide.
Dans le cas où il y a un fichier conf/httpd.conf, un répertoire peut être prévu pour recevoir les configurations des vhost, dans ce cas il doit y avoir à la fin du fichier une ligne du genre :

Include conf.d/vhosts/*.conf 

Sinon il faut ajouter cette ligne à la fin du fichier.

SeLinux

Il est recommandé de désactiver SeLinux, pour cela :

vi /etc/selinux/config 
SELINUX=disabled 
/usr/sbin/setenforce 0 

Il n'est pas obligatoire de désactiver SeLinux mais il faut alors être prêt à passer un temps conséquent à configurer votre OS Linux tout en rencontrant un grand nombre d'erreurs.
Sinon vous pouvez essayer de le désactiver le temps de l'installation, puis de le ré-activer afin de voir si les probables problèmes sont bien engendrés par SeLinux et non par un problème de configuration.

Nombre de fichiers ouverts

Linux permet de modifier le nombre max de fichiers ouverts, le CMS nécessite d’augmenter cette valeur, nous conseillons 100 000.

#Nombre de fichiers ouverts 
vi /etc/security/limits.conf 
* - nofile 100000 
root - nofile 100000 

#Puis rebootez. 
reboot 
vi – éditeur par défaut
 # Spécifier vi en tant qu'éditeur par défaut 
vim /etc/profile 
# ajouter les lignes suivantes 
EDITOR=/usr/bin/vi 
export EDITOR 
vi - remplacement de chaines de caractères

Pour remplacer une chaine de caractère <motif A> par une autre <motif B> dans un fichier :

:%s#<motif A>#<motif B>#g 

Par exemple pour remplacer cmsdev.xxxxxx.fr par cms.xxxxxx.fr faire :

:%s#cmsdevxxxxxx.fr#cms.xxxxxx.fr#g 

Faire attention au remplacement trop rapide et vérifier le résultat en faisant une comparaison avec l’ancien fichier.