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.
La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.
less /proc/cpuinfo
less /proc/cpuinfo
less /proc/cpuinfo
Vérification de la ram :
Oups !
La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.
less /proc/meminfo
less /proc/meminfo
less /proc/meminfo
Vérification de l’espace disque disponible :
Oups !
La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.
df -h
df -h
df -h
Vérification de l’OS :
Oups !
La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.
uname -a
uname -a
uname -a
Version de la JVM :
Oups !
La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.
java -version
java -version
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 :
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)
exécuter la commande « status »
Création de l’utilisateur cms
Oups !
La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.
#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
#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
#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é)
Oups !
La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.
#Récupération des anciens login utilisateurs
cat /etc/passwd
#Récupération des anciens login utilisateurs
cat /etc/passwd
#Récupération des anciens login utilisateurs
cat /etc/passwd
Liste des groupes (avancé)
Oups !
La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.
#Récupération des groupes (lié aux utilisateurs) de l'ancien serveur:
cat /etc/group
#Récupération des groupes (lié aux utilisateurs) de l'ancien serveur:
cat /etc/group
#Récupération des groupes (lié aux utilisateurs) de l'ancien serveur:
cat /etc/group
Crypter un mot de passe (avancé)
Oups !
La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.
#Cryptage du mot de passe:
perl -e 'print crypt("password", "NSc!ne1d@nyw&"),"\n"'
#Cryptage du mot de passe:
perl -e 'print crypt("password", "NSc!ne1d@nyw&"),"\n"'
#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é.
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
Oups !
La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.
apt install wget
apt install wget
apt install wget
installer unzip
unzip est utilisé pour dézipper le zip du CMS Ametys.
Exemple pour Ubuntu
Oups !
La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.
apt install unzip
apt install unzip
apt 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/Debian
Oups !
La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.
#En tant que root, installer Apache2
apt update
apt install apache2
#apache2 est installé dans /etc/apache2/
#En tant que root, installer Apache2
apt update
apt install apache2
#apache2 est installé dans /etc/apache2/
#En tant que root, installer Apache2
apt update
apt install apache2
#apache2 est installé dans /etc/apache2/
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.
Oups !
La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.
#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
#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
#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 :
Oups !
La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.
Si vous souhaitez avoir des logs du module mod-rewrite:
Exemple pour Ubuntu & Apache 2.4
Oups !
La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.
#ajouter cette ligne dans le fichier vhost après la directive "RewriteEngine On"
LogLevel alert rewrite:trace3
#ajouter cette ligne dans le fichier vhost après la directive "RewriteEngine On"
LogLevel alert rewrite:trace3
#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.
La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.
sudo apt install mysql-server
#Configuration de MySQL
sudo mysql_secure_installation
sudo apt install mysql-server
#Configuration de MySQL
sudo mysql_secure_installation
sudo apt install mysql-server
#Configuration de MySQL
sudo mysql_secure_installation
Exemple pour Redhat / Fedora
Oups !
La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.
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'
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'
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
Vous pouvez installer une JVM avec Ansible par exemple en utilisant le role gantsign.java ou suivre les instructions manuelles pour adoptjdk.
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 9 et plus. Tomcat est téléchargeable sur le site de Apache: Tomcat 9.
Pour installer tomcat vous pouvez utiliser le role Ansible pulse-mind.tomcat.
Oups !
La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.
#Exemple de lignes de commandes:
cd /opt
mkdir tomcat
groupadd tomcat
useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
tar xzf /tmp/tomcat.tgz
mkdir current
ln-f apache-tomcat.1.0.0 current
cd /opt/tomcat/current
chgrp -R tomcat /opt/tomcat
chmod -R g+r conf
chmod g+x conf
chown -R tomcat webapps/ work/ temp/ logs/
chmod -R g+w logs temp webapps work
#Exemple de lignes de commandes:
cd /opt
mkdir tomcat
groupadd tomcat
useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
tar xzf /tmp/tomcat.tgz
mkdir current
ln-f apache-tomcat.1.0.0 current
cd /opt/tomcat/current
chgrp -R tomcat /opt/tomcat
chmod -R g+r conf
chmod g+x conf
chown -R tomcat webapps/ work/ temp/ logs/
chmod -R g+w logs temp webapps work
#Exemple de lignes de commandes:
cd /opt
mkdir tomcat
groupadd tomcat
useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
tar xzf /tmp/tomcat.tgz
mkdir current
ln-f apache-tomcat.1.0.0 current
cd /opt/tomcat/current
chgrp -R tomcat /opt/tomcat
chmod -R g+r conf
chmod g+x conf
chown -R tomcat webapps/ work/ temp/ logs/
chmod -R g+w logs temp webapps work
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 :
Oups !
La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.
Include sites-enabled/*.conf
Include sites-enabled/*.conf
Include sites-enabled/*.conf
Sinon il faut ajouter cette ligne à la fin du fichier.
SeLinux
Il est recommandé de désactiver SeLinux, pour cela :
Oups !
La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.
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
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
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.
Oups !
La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.
#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
#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
#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
Oups !
La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.
# Spécifier vi en tant qu'éditeur par défaut
vim /etc/profile
# ajouter les lignes suivantes
EDITOR=/usr/bin/vi
export EDITOR
# Spécifier vi en tant qu'éditeur par défaut
vim /etc/profile
# ajouter les lignes suivantes
EDITOR=/usr/bin/vi
export EDITOR
# Spécifier vi en tant qu'éditeur par défaut
vim /etc/profile
# ajouter les lignes suivantes
EDITOR=/usr/bin/vi
export EDITOR
vi - copier/coller (debian)
Oups !
La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.
vi ~/.vimrc
#Aciver le copier/coller
set mouse-=a
#Activer la coloration syntaxique
syntax on
vi ~/.vimrc
#Aciver le copier/coller
set mouse-=a
#Activer la coloration syntaxique
syntax on
vi ~/.vimrc
#Aciver le copier/coller
set mouse-=a
#Activer la coloration syntaxique
syntax on
vi – remplacement de chaines de caractères
Pour remplacer une chaine de caractère <motif A> par une autre <motif B> dans un fichier :
Oups !
La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.
:%s#<motif A>#<motif B>#g
:%s#<motif A>#<motif B>#g
:%s#<motif A>#<motif B>#g
Par exemple pour remplacer cmsdev.xxxxxx.fr par cms.xxxxxx.fr faire :
Oups !
La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.
:%s#cmsdevxxxxxx.fr#cms.xxxxxx.fr#g
:%s#cmsdevxxxxxx.fr#cms.xxxxxx.fr#g
:%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
Oups !
La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.
cd
vi .bashrc
cd
vi .bashrc
cd
vi .bashrc
En général il suffit de supprimer le commentaire devant la ligne
Oups !
La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.
alias ll='ls -l'
alias ll='ls -l'
alias ll='ls -l'
A noter que parfois les alias sont dans un autre fichier (ce fichier étant appelé par le .bashrc) :
Oups !
La copie dans le presse papier a échouée. Ouvrez le code et copier-le manuellement.