PostHeaderIcon 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).log

export SHUTDOWN_WAIT=30

export prog=wildfly
export JBOSS_BIND_ADDRESS=0.0.0.0

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

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

mkdir -p $(dirname $JBOSS_CONSOLE_LOG)
cat /dev/null > $JBOSS_CONSOLE_LOG

mkdir -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;
done

if [ $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/)

image_print

Laisser un commentaire