Dans cette page nous proposons des astuces systèmes qui sont utiles au cours de l'installation du CMS Ametys sous Linux. Ces astuces sont évidentes pour un ingénieur système mais peuvent être très utile pour de nombreux utilisateurs. Certaines commandes peuvent varier en fonction de la version de Linux.

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

  1. Système
    1. Vérification des prérequis
  2. Création de l’utilisateur cms
  3. Liste des utilisateurs (avancé)
  4. Liste des groupes (avancé)
  5. Crypter un mot de passe (avancé)
  6. Installer un package
    1. Installer wget
    2. installer unzip
    3. Apache 2
      1. Installation
      2. Modules
    4. MySQL
    5. JVM
    6. Tomcat
      1. Vérifier la version de tomcat
  7. Virtual Host Apache
  8. SeLinux
  9. Nombre de fichiers ouverts
  10. vi – éditeur par défaut
  11. vi – remplacement de chaines de caractères
  12. Alias
  13. Configurer tomcat au démarrage du serveur

Système

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

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

 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> 

Installer wget

wget est un programme en ligne de commande permettant de télécharger un fichier. Nous utilisons wget pour récupérer le zip du CMS Ametys ou pour récupérer une version de la JVM, tomcat...

Exemple pour Ubuntu

apt-get install wget

installer unzip

unzip est utilisé pour dézipper le zip du CMS Ametys.

Exemple pour Ubuntu

apt-get install unzip

Apache 2

Installation

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

Nous préconisons d'utiliser une version packagé provenant de la distribution de linux afin de profiter des mises à jour. Apache est utilisé en frontal et donc va subir les attaques, pour des raisons de sécurité il est conseillé de le maintenir à jour. 

Exemple pour Ubuntu

#En tant que root, installer Apache2
apt-get update
apt-get install apache2
#apache2 est installé dans /etc/apache2/
 
chown -R cms:cms /var/lib/tomcat7/conf/*

Modules

Il existe plusieurs solutions pour activer les modules.

La première consiste à ajouter un lien du répertoire mods-enabled vers le répertoire mods-available.

#Configuration de Apache: ajout des modules
cd /etc/apache2/mods-enabled
ln -sf ../mods-available/deflate.load
ln -sf ../mods-available/expires.load
ln -sf ../mods-available/headers.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 deuxième consiste à utiliser la commande a2enmod. La commande a2enmod permet d’activer un module dans apache2, par exemple :

a2enmod deflate expires headers proxy proxy_http rewrite

Si vous souhaitez avoir des logs du module mod-rewrite:

Exemple pour Ubuntu & Apache 2.4

#ajouter cette ligne dans le fichier vhost après la directive "RewriteEngine On"
LogLevel alert rewrite:trace3

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 Ubuntu

sudo apt-get install mysql-server-5.5
#MySQL est démarré par défaut, si besoin: 
/etc/init.d/mysql start

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 JVM 1.6 ou + (http://www.oracle.com/technetwork/java/javase/downloads/index.html)

Exemple :

Exemple

#Install de java6
# Téléchargement du jre d'Oracle (remplacez l'URL http de l'exemple suivant par celui pointant vers la dernière version du jre 1.6)
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

Exemple d'installation de java7 sous Ubuntu

#sur le site http://www.oracle.com/technetwork/java/javase/downloads/index.html, choisir Server JRE
#En tant que root
sudo su -
cd /usr/lib/

#Si jvm n'existe pas:
mkdir jvm

tar xzf /tmp/server-jre-7u51-linux-x64.tar.gz
chown -R root:root /usr/lib/jvm/jdk1.7.0_51/

#Cette commande permet d'assigner cette jre avec une priorité de 1, si une autre jre est installée, elle la remplacera.
update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.7.0_51/bin/java" 1100

#S'assurer que java est executable
sudo chmod a+x /usr/bin/java

#Cette commande permet de configurer la priorité
update-alternatives --config java

#Check the version of you new JDK 7 installation:
java -version

Tomcat

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

Deux solutions pour installer tomcat: télécharger et déployer une version zip de tomcat disponible sur le site de Apache ou installer la version packagé provenant de la distribution de linux.

Le CMS Ametys est compatible avec Tomcat 6 et plus. Tomcat est téléchargeable sur le site de Apache: Tomcat 6Tomcat 7.

La procédure suivante permet d'installer Tomcat 7 à partir de la version proposé par la distribution:

Exemple pour Ubuntu

#En tant que root, installer tomcat
apt-get update
apt-get install tomcat7
#tomcat7 est installé dans /etc/tomcat7

 
#La configuration spécifique est définit dans le fichier /etc/default/tomcat7
chown cms:cms /etc/default/tomcat7

#Edition du fichier pour Ametys (back + front)
vi /etc/default/tomcat7
TOMCAT7_USER=cms
TOMCAT7_GROUP=cms
JAVA_OPTS="-server -Djava.awt.headless=true -Xmx4096m -Xms512m -XX:MaxPermSize=256M"

#Création du fichier pid
touch /var/run/tomcat7.pid
 
#ajustement des droits
chown cms:cms /var/run/tomcat7.pid
chown -R cms:cms /var/lib/tomcat7
chown -R cms:cms /var/lib/tomcat7/conf/*
chown -R cms:cms /var/log/tomcat7
chown -R cms:cms /var/cache/tomcat7
chown -R cms:cms /etc/default/tomcat7

 

Vérifier la version de tomcat

Exemple pour Ubuntu

cd /tmp
jar xf /usr/share/tomcat/lib/catalina.jar
more org/apache/catalina/util/ServerInfo.properties
[...]
server.info=Apache Tomcat/7.0.33
server.number=7.0.33.0
server.built=Apr 30 2014 09:16:58

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

 
#ou si /etc/selinux/config n'existe pas: 
echo 0 > /selinux/enforce
apt-get install selinux-utils
setenforce 0
cd /etc
mkdir selinux
vi /etc/selinux/config
SELINUX=disabled

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
 
#Dans le script de tomcat, par exemple /etc/default/tomcat7, ajoutez à la fin: 
#Pour être sur que tomcat l'utilise au démarrage, même après un reboot du serveur
ulimit -n 100000

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.

Alias

Pour plus de confort, ajouter l’alias ll

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

 

Configurer tomcat au démarrage du serveur

Reporter l'initialisation des variables d'environnement du script de démarrage de tomcat dans le .bashrc de l'utilisateur qui lance tomcat (normalement cms)

Exemple: 

prog="tomcat"
CATALINA_BASE=/usr/share/tomcat
CATALINA_HOME=/usr/share/tomcat
CATALINA_TMPDIR=/usr/share/tomcat/temp
CATALINA_PID=/usr/share/tomcat/$prog.pid
JAVA_HOME=/opt/jdksun
TRUST_CERT=/path/to/my.keystore
JAVA_OPTS="-server -Djavax.net.ssl.trustStore=$TRUST_CERT -Djava.awt.headless=true -Xmx4096m -Xms512m -XX:MaxPermSize=256M"
LC_CTYPE="fr_FR.UTF-8"
export CATALINA_BASE CATALINA_HOME CATALINA_OPTS CATALINA_TMPDIR CATALINA_PID JAVA_HOME LC_CTYPE JAVA_OPTS

Dans le script de démarrage de tomcat, s'assurer que les commandes sont lancées avec su - $USER, cela permet de récupérer les variables d'environnement de l'utilisateur, en particulier durant le processus de démarrage du serveur.

Exemple

...
su - $USER -s /bin/bash -c $CATALINA_HOME/bin/startup.sh
...

Pour ajouter tomcat au démarrage (centos): 

systemctl enable tomcat
chkconfig --add tomcat
Retour en haut