1.4 Installation serveur applicatif et base de données - dosseggegw1/AMT_projet Wiki

WildFly

Ci-dessous, vous trouverez comment nous avons installé le serveur applicatif Wildfly sur Debian 11 afin qu'il soit facile de reproduire son installation. Nous nous sommes basé sur le tuto suivant source.

Prérequis

L'utilisation avec lequel nous allons installer les paquets doit posséder les privilèges sudo.

Configuration de l'environnement

Dans un premier temps, il faut installer Java pour que WildFly puisse fonctionner.

sudo apt update
sudo apt install default-jdk

On crée ensuite un utilisateur et un groupe wildfly avec un home directory /opt/wildfly qui sera utilisé par le service.

sudo groupadd -r wildfly
sudo useradd -r -g wildfly -d /opt/wildfly -s /sbin/nologin wildfly

Installation de WildFly

Pour ce projet, nous avons utilisé la version 22.0.0 de WildFly. Pour avoir plus d'informations sur les versions disponibles, veuillez vérifier la page de téléchargement. Si vous souhaitez utiliser une autre version, il suffit de modifier la variable WILDFLY_VERSION. La première étape est le téléchargement l'archive comme suit :

WILDFLY_VERSION=22.0.0.Final
wget https://download.jboss.org/wildfly/$WILDFLY_VERSION/wildfly-$WILDFLY_VERSION.tar.gz -P /tmp

Une fois le téléchargement effectué, on extrait les fichiers et on les place dans le directory /opt :

sudo tar xf /tmp/wildfly-$WILDFLY_VERSION.tar.gz -C /opt/

Ensuite, on crée un lien symbolique wildfly qui pointe sur le répertoire d'installation :

sudo ln -s /opt/wildfly-$WILDFLY_VERSION /opt/wildfly

Pour finir, on veut que WildFly tourne avec l'utilisateur wildfly a qui il faut donner accès au répertoire d'installation. On change donc le propriétaire (user + groupe) du répertoire.

sudo chown -RH wildfly: /opt/wildfly

Configurer WildFly comme service

Cette configuration suivante permet à WildFly de s'executer en tant que service :

sudo mkdir -p /etc/wildfly
sudo cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.conf /etc/wildfly/

On modifie ensuite le fichier /etc/wildfly/wildfly.conf de la manière suivante :

# The configuration you want to run
WILDFLY_CONFIG=standalone.xml

# The mode you want to run
WILDFLY_MODE=standalone

# The address to bind to
WILDFLY_BIND=0.0.0.0

Ajout du script executable

sudo cp /opt/wildfly/docs/contrib/scripts/systemd/launch.sh /opt/wildfly/bin/
sudo sh -c 'chmod +x /opt/wildfly/bin/*.sh'
sudo cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.service /etc/systemd/system/
sudo systemctl daemon-reload

Pour finir, on démarre le service et lui permet d'être automatiquement lancé lors du boot :

sudo systemctl start wildfly
sudo systemctl enable wildfly

# On peut vérifier le statut du service avec cette commande
sudo systemctl status wildfly

Ajuster le Firewall

Dans le cas où le serveur serait protégé par un Firewall, il est nécessaire de permettre l'accès à l'interface de WildFly depuis un réseau extérieur. On autorise donc le trafic sur le port 8080 avec la commande suivante :

sudo ufw allow 8080/tcp

Tester l'installation de WildFly

Pour accéder à la page par défaut de WildFly, lancer un navigateur et utiliser l'adresse suivante : http://<your_domain_or_IP_address>:8080. Dans le cas où le serveur est fonctionnel, une page de bienvenue sera affiché.

Configuration du pannel administrateur

Créer un compte utilisateur

Il est aussi possible de gérer les comptes utilisateurs depuis l'interface graphique si celle-ci a été mise en place.

Dans un premier temps il faut créer un compte utilisateur qui permetra de se connecter à la console graphique ou CLI. Pour créer un nouvel utilisateur, nous utilisons le script add-user.sh

sudo /opt/wildfly/bin/add-user.sh

Plusieurs questions pour le configurer seront demandés, nous nous sommes basés sur les réponses suivantes :

What type of user do you wish to add? 
 a) Management User (mgmt-users.properties) 
 b) Application User (application-users.properties)
(a): # choisir a

Enter the details of the new user to add.
Using realm 'ManagementRealm' as discovered from the existing property files.
Username : # saisir un username

Password recommendations are listed below. To modify these restrictions edit the add-user.properties configuration file.
 - The password should be different from the username
 - The password should not be one of the following restricted values {root, admin, administrator}
 - The password should contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), 1 non-alphanumeric symbol(s)
Password : # saisir un password
Re-enter Password : # le resaisir 0/

What groups do you want this user to belong to? (Please enter a comma separated list, or leave blank for none)[  ]: 
About to add user 'linuxize' for realm 'ManagementRealm'
Is this correct yes/no? # saisir yes
Added user 'linuxize' to file '/opt/wildfly-16.0.0.Final/standalone/configuration/mgmt-users.properties'
Added user 'linuxize' to file '/opt/wildfly-16.0.0.Final/domain/configuration/mgmt-users.properties'
Added user 'linuxize' with groups  to file '/opt/wildfly-16.0.0.Final/standalone/configuration/mgmt-groups.properties'
Added user 'linuxize' with groups  to file '/opt/wildfly-16.0.0.Final/domain/configuration/mgmt-groups.properties'
Is this new user going to be used for one AS process to connect to another AS process? 
e.g. for a slave host controller connecting to the master or for a Remoting connection for server to server EJB calls.
yes/no? #saisir yes
To represent the user add the following to the server-identities definition <secret value="..." />

Le nouvel utilisateur sera ainsi ajouté aux fichiers d'authentification.

Activer le pannel administrateur

Par défaut, le pannel administrateur est accessible via l'adresse : http://localhost:9990/console. Cependant, pour y avoir accès lorsqu'on est en remote il est impératif de suivre les modifications suivantes :

# The configuration you want to run
WILDFLY_CONFIG=standalone.xml

# The mode you want to run
WILDFLY_MODE=standalone

# The address to bind to
WILDFLY_BIND=0.0.0.0

# The address console to bind to                     <---- Lignes à ajouter
WILDFLY_CONSOLE_BIND=0.0.0.0
#!/bin/bash

if [ "x$WILDFLY_HOME" = "x" ]; then
    WILDFLY_HOME="/opt/wildfly"
fi

if [ "$1" == "domain" ](/dosseggegw1/AMT_projet/wiki/-"$1"-==-"domain"-); then
    $WILDFLY_HOME/bin/domain.sh -c $2 -b $3 -bmanagement $4
else
    $WILDFLY_HOME/bin/standalone.sh -c $2 -b $3 -bmanagement $4
fi
ExecStart=/opt/wildfly/bin/launch.sh $WILDFLY_MODE $WILDFLY_CONFIG $WILDFLY_BIND $WILDFLY_CONSOLE_BIND
sudo mkdir /var/run/wildfly/
sudo chown wildfly: /var/run/wildfly/
sudo systemclt daemon-reload
sudo systemctl restart wildfly

Pour autant que le firewall ne bloque pas le port 9990, on peut acceder au pannel administrateur à l'adresse : http://nom_domaine:9990/console

MySQL

Nous allons expliquer comment installer MySQL sur une distribution Linux (sur Debian), la mise en place de l'environnement, ainsi qu'ajouter une petit documentation pour les commandes.

Installation MySQL

La première étape est de télécharger le package gnupg:

sudo apt update
sudo apt install gnupg

La seconde étape est de télécharger le repository de MySQL à l'aide wget:

cd /tmp
wget http://repo.mysql.com/mysql-apt-config_0.8.15-1_all.deb

Puis on l'installe:

sudo dpkg -i mysql-apt-config_0.8.15-1_all.deb

Une fois le repository installé:

sudo apt update

A présent, on peut installer le paquet officiel du serveur MySQL:

sudo apt install mysql-server

Pendant l'installation, on vous demandera de paramétrer un mot de passe du root, choisissez de mettre root. Une fois tout cela terminé, entrez cette commande pour vérifier que le système est actif:

sudo systemctl status mysql
● mysql.service - MySQL Community Server
     Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset:>
     Active: active (running) since Wed 2021-10-20 17:05:29 CEST; 1s ago
       Docs: man:mysqld(8)
             http://dev.mysql.com/doc/refman/en/using-systemd.html
    Process: 25474 ExecStartPre=/usr/share/mysql-8.0/mysql-systemd-start pre (c>
   Main PID: 25509 (mysqld)
     Status: "Server is operational"
      Tasks: 38 (limit: 18970)
     Memory: 360.5M
        CPU: 689ms
     CGroup: /system.slice/mysql.service
             └─25509 /usr/sbin/mysqld

oct 20 17:05:29 debian systemd[1]: Starting MySQL Community Server...
oct 20 17:05:29 debian systemd[1]: Started MySQL Community Server.

Si l'état est inactif, entrez cette commande:

sudo systemctl restart mysql

En cas d'erreur "ERROR 1698 (28000): Access denied for user 'root'@'localhost'", procéder de la manière suivante pour modifier le mot de passe de l'utilisateur root (il faut modifier le mot de passe pour ne pas utiliser root une seconde fois):

$ sudo mysql
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';

Pour se connecter :

$ mysql -u root -p
Enter password: 

PHPMyAdmin & Apache

Source : https://tecadmin.net/install-phpmyadmin-ubuntu-20-04/

Pour visualiser le contenu de la base de données, il faut installer apache et phpmyadmin (sur une distribution Linux) :

// Téléchargement des paquets nécessaires Apache et PHP
$ sudo apt install apache2
$ sudo apt install php php-zip php-json php-mbstring php-mysql php-xml

// Enable et start Apache
$ sudo systemctl enable apache2
$ sudo systemctl start apache2

// Installation de phpmyadmin
$ wget https://files.phpmyadmin.net/phpMyAdmin/5.1.1/phpMyAdmin-5.1.1-all-languages.zip
$ unzip phpMyAdmin-5.1.1-all-languages.zip 
$ mv phpMyAdmin-5.1.1-all-languages /usr/share/phpmyadmin
$ sudo mv phpMyAdmin-5.1.1-all-languages /usr/share/phpmyadmin

$ mkdir /usr/share/phpmyadmin/tmp
$ chown -R www-data:www-data /usr/share/phpmyadmin
$ chmod 777 /usr/share/phpmyadmin/tmp 

// Création du fichier de configuration
$ sudo vi /etc/apache2/conf-available/phpmyadmin.conf 

Ajouter dans le fichier créé lors de la dernière commande ci-dessus :

Alias /phpmyadmin /usr/share/phpmyadmin
Alias /phpMyAdmin /usr/share/phpmyadmin
 
<Directory /usr/share/phpmyadmin/>
   AddDefaultCharset UTF-8
   <IfModule mod_authz_core.c>
      <RequireAny>
      Require all granted
     </RequireAny>
   </IfModule>
</Directory>
 
<Directory /usr/share/phpmyadmin/setup/>
   <IfModule mod_authz_core.c>
     <RequireAny>
       Require all granted
     </RequireAny>
   </IfModule>
</Directory>

Puis pour terminer, il faut relancer apache :

$ sudo a2enconf phpmyadmin 
$ sudo systemctl restart apache2

Pour accéder à phpmyadmin, il faut se connecter sur http://localhost/phpmyadmin dans un navigateur, puis entrer les identifiants permettant d'accéder à la base de données.