Tuto | Installer et configurer un serveur WildFly
Article publiée le 7 Juin 2017
WildFly est un fork opensource de Jboss. Ce serveur d’application Java EE représente une alternative à crédible par rapport aux autres serveurs d’application JAVA type weblogic, websphère (tutoriel d’installation disponible ici), Jboss, etc…
Ce tutoriel explique comment installer et configurer rapidement un serveur WildFly afin qu’il soit opérationnel. Nous ne rentrerons pas dans les fonctionnalités avancées du produit.
1) Installation
Avant toute chose, Wildfly doit être exécuté via un user système dédié (surtout pas en root!).
Le choix de la distribution importera peu (Debian/Ubuntu ou Centos/RedHat feront très bien l’affaire). Assurez que JAVA soit installé sur votre serveur.
- Authentifiez vous ensuite en tant que user wildfly (ou celui que vous avez créé)
su – wildfly
- Téléchargez ensuite la dernière version de WildFly sur le site officiel (au moment ou ce tutoriel a été rédigé, la version 10.1.0 été en version stable.): http://wildfly.org/downloads/
- Éditez le fichier .bashrc afin de mettre à jour les variables d’environnement $JAVA_HOME et $PATH.
export JAVA_HOME=<chemin d’installation de JAVA>
export PATH=$JAVA_HOME/bin:$PATH
- Sans oublier de sourcer votre .bashrc
source .bash_rc
Décompressez ensuite l’archive précédemment téléchargée. Vous devriez avoir le contenu suivant:
2) Configuration
Le fichier de configuration qui va nous intéresser se situe dans le répertoire <votre répertoire d’installation>/wildfly/standalone/configuration/standalone.xml.
Les élément qui nous intéresse se situe à la fin du fichier:
<socket-binding-group name= »standard-sockets » default-interface= »public » port-offset= »${jboss.socket.binding.port-offset:0} »>
<socket-binding name= »management-http » interface= »management » port= »${jboss.management.http.port:9990} »/>
<socket-binding name= »management-https » interface= »management » port= »${jboss.management.https.port:9993} »/>
<socket-binding name= »ajp » port= »${jboss.ajp.port:8009} »/>
<socket-binding name= »http » port= »${jboss.http.port:8080} »/>
<socket-binding name= »https » port= »${jboss.https.port:8443} »/>
<socket-binding name= »txn-recovery-environment » port= »4712″/>
<socket-binding name= »txn-status-manager » port= »4713″/>
<outbound-socket-binding name= »mail-smtp »>
<remote-destination host= »localhost » port= »25″/>
</outbound-socket-binding>
</socket-binding-group>
Les lignes ci-dessus permette de paramétrer les ports d’écoutes (port d’écoute HTTP par défaut: 8080).
3) Démarrage/Arrêt
Vous trouverez ci-dessous le contenu d’un shell permettant de gérer l’arret/démarrage de votre serveur WildFly
#!/usr/bin/env bash
# LANG must be explicitly set in startup script (it is not set by monit)
export LANG= »en_US.utf8″
# Adapt JBOSS_HOME with your current installation wildfly PATH
export JAVA_HOME= »${JAVA_HOME} »
export JBOSS_HOME=/srv/wildfly/apps/wildfly
export JBOSS_PIDFILE=$JBOSS_HOME/standalone/tmp/wildfly.pid
export JBOSS_SCRIPT=$JBOSS_HOME/bin/standalone.sh
export JBOSS_CONFIG=standalone.xml
export JBOSS_CONSOLE_LOG=/srv/wildfly/logs/wilfly/console-$(date +%Y%m%d-%H%M%S).logexport SHUTDOWN_WAIT=30
export prog=wildfly
export JBOSS_BIND_ADDRESS=0.0.0.0JBOSS_MODULES_SYSTEM_PKGS= »org.jboss.byteman »
#Adapt the memory tunning as you want
JAVA_OPTS= »-Xms1303m -Xmx1303m -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true »
JAVA_OPTS= »$JAVA_OPTS -Djboss.modules.system.pkgs=$JBOSS_MODULES_SYSTEM_PKGS -Djava.awt.headless=true »
JAVA_OPTS= »$JAVA_OPTS -Djboss.modules.policy-permissions=true »
JAVA_OPTS= »$JAVA_OPTS -Djboss.bind.address=$JBOSS_BIND_ADDRESS »
export JAVA_OPTSEXEC_PATH=${JBOSS_HOME}/bin
cd ${EXEC_PATH}start() {
# TODO verifier le contenu du fichier de pid
if [ -f $JBOSS_PIDFILE ]; then
read ppid < $JBOSS_PIDFILE
if [ `ps –pid $ppid 2> /dev/null | grep -c $ppid 2> /dev/null` -eq ‘1’ ]; then
echo -n « $prog is already running »
echo
return 1
else
rm -f $JBOSS_PIDFILE
fi
fimkdir -p $(dirname $JBOSS_CONSOLE_LOG)
cat /dev/null > $JBOSS_CONSOLE_LOGmkdir -p $(dirname $JBOSS_PIDFILE)
export LAUNCH_JBOSS_IN_BACKGROUND=1
$JBOSS_SCRIPT -c $JBOSS_CONFIG > $JBOSS_CONSOLE_LOG 2>&1 &
return 0
}stop() {
# TODO verifier le contenu du fichier de pid
count=0;if [ -f $JBOSS_PIDFILE ]; then
read kpid < $JBOSS_PIDFILE
let kwait=$SHUTDOWN_WAIT# Try issuing SIGTERM
kill -15 $kpid
until [ `ps –pid $kpid 2> /dev/null | grep -c $kpid 2> /dev/null` -eq ‘0’ ] || [ $count -gt $kwait ]
do
sleep 1
let count=$count+1;
doneif [ $count -gt $kwait ]; then
kill -9 $kpid
fi
fi
rm -f $JBOSS_PIDFILE
}status() {
# TODO verifier le contenu du fichier de pid
if [ -f $JBOSS_PIDFILE ]; then
read ppid < $JBOSS_PIDFILE
if [ `ps –pid $ppid 2> /dev/null | grep -c $ppid 2> /dev/null` -eq ‘1’ ]; then
echo « $prog is running (pid $ppid) »
return 0
else
echo « $prog dead but pid file exists »
return 1
fi
fi
echo « $prog is not running »
return 3
}case « $1 » in
start)
start
;;
stop)
stop
;;
restart)
$0 stop
$0 start
;;
status)
status
;;
*)
## If no parameters are given, print which are avaiable.
echo « Usage: $0 {start|stop|status|restart|reload} »
esac
4) Déploiement
Pour déployer votre application JAVA (sous forme de fichier ear), il vous suffit de le placer dans le répertoire <votre répertoire d’installation>/wildfly/standalone/. Une fois la copie terminée créer un fichier vide ayant le même nom que votre fichier ear suivi de .dodeploy.
Exemple: monapplicationjava.ear.dodeploy.
Wildfly commencera à déployer votre application. Si le déploiement se passe correctement le fichier sera renommé en <nom de votre fichier ear>.deployed
Le contenu de votre application sera disponible depuis votre navigateur via le port 8080 (port HTTP par défaut).
Il est vivement conseillé de toujours utiliser un reverse proxy HTTP (apache2) devant votre serveur d’application (un tutoriel est disponible à ce sujet: https://journaldunadminlinux.fr/tutoriel-mettre-en-place-un-reverse-proxy-sur-apache-via-mod_proxy/)