Ce guide détaille la mise en œuvre d'un environnement de serveur complet sous CentOS 7 (64 bits). Avant de débuter, assurez-vous que votre interface réseau est active afin d'obtenir une adresse IP via la commande ip addr ou ifconfig pour permettre une connexion SSH distante.
- Préparation de l'environnement et installation du JDK
Commencez par créer un répertoire dédié pour centraliser vos sources d'installation et accédez-y :
mkdir -p /opt/software_setup
cd /opt/software_setup
Après avoir transféré les archives JDK et Tomcat, procédez à leur extraction :
tar -xzvf jdk-8u151-linux-x64.tar.gz
tar -xzvf apache-tomcat-8.5.20.tar.gz
Pour configurer l'environnement Java, éditez le fichier /etc/profile :
vim /etc/profile
Ajoutez les lignes suivantes à la fin du fichier pour définir les variables système :
export JAVA_HOME=/opt/software_setup/jdk1.8.0_151
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
Appliquez les modifications immédiatement :
source /etc/profile
- Configuration de Tomcat et Sécurité Réseau
Pour autoriser l'accès distant à l'interface d'daministration de Tomcat, modifiez le fichier de contexte :
vim /opt/software_setup/apache-tomcat-8.5.20/webapps/manager/META-INF/context.xml
Commentez ou supprimez la section Valve qui restreint l'accès par adresse IP (RemoteAddrValve).
Configurez ensuite les utilisateurs et rôles dans conf/tomcat-users.xml :
<role rolename="manager-gui"/>
<user username="admin_user" password="votre_mot_de_passe" roles="manager-gui"/>
Ouvrez le port 8080 dans le pare-feu système et démarrez le service :
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload
cd /opt/software_setup/apache-tomcat-8.5.20/bin
./startup.sh
- Installation et Sécurisation de MySQL 5.7
Supprimez d'abord toute trace de MariaDB pour éviter les conflits de dépendances :
rpm -qa | grep mariadb
rpm -e --nodeps mariadb-libs-5.5.64-1.el7.x86_64
Extrayez le bundle MySQL et installez les paquets RPM dans l'ordre suivant :
tar -xvf mysql-5.7.35-1.el7.x86_64.rpm-bundle.tar -C ./mysql_files
cd mysql_files
rpm -ivh mysql-community-common-*.rpm
rpm -ivh mysql-community-libs-*.rpm
rpm -ivh mysql-community-client-*.rpm
rpm -ivh mysql-community-server-*.rpm
Initialisez le service et récupérez le mot de passe temporaire :
systemctl start mysqld
grep "temporary password" /var/log/mysqld.log
Connectez-vous à MySQL pour configurer la politique de sécurité et le mot de passe final :
mysql -u root -p
set global validate_password_policy=0;
set global validate_password_length=4;
alter user 'root'@'localhost' identified by 'nouveau_pass_123';
grant all privileges on *.* to 'root'@'%' identified by 'nouveau_pass_123';
flush privileges;
- Compilation et Déploiement de Redis
L'installation de Redis nécessite le compilateur GCC :
yum install -y gcc
wget https://download.redis.io/releases/redis-6.2.6.tar.gz
tar -zxvf redis-6.2.6.tar.gz
cd redis-6.2.6
make && make install PREFIX=/usr/local/redis
Pour configurer Redis en mode démon (arrière-plan), copiez le fichier de configuration et modifiez les paramètres suivants dans redis.conf :
daemonize yesprotected-mode norequirepass votre_mdp_redis
/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf
- Installation de Nginx et Reverse Proxy
Installez Nginx via le dépôt offiicel et configurez le pare-feu pour le port HTTP :
rpm -Uvh http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.14.2-1.el7_4.ngx.x86_64.rpm
yum install -y nginx
systemctl start nginx
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
Éditez /etc/nginx/nginx.conf pour pointer vers vos fichiers statiques et configurer le proxy vers Tomcat :
server {
listen 80;
server_name www.votre-domaine.com;
location / {
root /usr/local/dist;
index index.html index.htm;
}
location /api {
proxy_pass http://localhost:8080;
}
}
Vérifiez la syntaxe et redémarrez Nginx :
nginx -t
systemctl restart nginx
Note : Si vous rencontrez des erreurs de connexion, vérifiez l'état de SELinux avec setenforce 0 pour tester si le blocage provient des politiques de sécurité du noyau.