You are not logged in.

Announcement

 Téléchargez la dernière version stable de GLPI      -     Et vous, que pouvez vous faire pour le projet GLPI ? :  Contribuer
 Download last stable version of GLPI                      -     What can you do for GLPI ? :  Contribute

#1 2020-05-03 13:27:48

vandykmarsu
Member
Registered: 2014-11-02
Posts: 25

Procédure d'installation LAMP/GLPI/Fusioninventory sur CentOS 8.2

Installation LAMP, GLPI et Fusioninventory sur CentOS 8.2


Avant toute chose, qui n'a pas été faite en 2014, je tiens à remercier Mr Durieux et sa team GLPI ainsi que Mr Collet "au chapeau rouge" pour leurs travaux et impliquations dans le monde du libre, un grand bravo à eux.


Ceci est une mise à jour de mon précédent projet de formation datant de 2014.(voir en fin de page)

OpenSuse avait été retenu car seule distribution linux maitrisée à l'époque, mais CentOS reste selon moi la distribution Linux la plus apropriée dans un environnement professionnel.


I Installation LAMP.


Dans cette mise à jour mon choix s'est porté sur la dernière version de CentOS 8.2.2004, choisissez un mirroir.

Vérifiez l'intégrité de l'image ISO https://wiki.centos.org/TipsAndTricks/sha256sum

Une fois l'OS installé et mis à jour, nous allons installer les paquets nécessaires à l'élaboration d'un environnement de site web.

Les dépôts par défaut de CentOS 8.2 ne prennent pas en charge certains plugins nécessaires au bon fonctionnement de glpi ainsi que phpMyAdmin, pour cela nous allons activer les dépôts remi.


Dans une fenêtre en root rentrons les lignes suivantes:

dnf update && dnf upgrade
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm

Mettons les dépôts à jour:

dnf update

Activons ensuite le dépôt remi:

dnf config-manager --set-enabled remi

Ia Apache.


Installé par défaut en fonction du choix des options durant l'installation, dans mon exemple ce sera en minimal.


Ouvrons une fenêtre terminal en root:

dnf module install httpd -y

Activons et démarrons le service:

systemctl enable --now httpd

Vérifions le statut du service:

systemctl status httpd

Si ces lignes aparaissent le service est fonctionnel:

httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since *

   
   
Nous allons désactiver le firewall:

systemctl stop firewalld
systemctl disable firewalld

Ensuite Testons notre serveur web apache:

http://mon_ip

Une page de test s'affiche comme suit:

httpd.png


Ib MYSQL.


Installons mariadb:

dnf module install mariadb -y

Activons et démarron son service:

systemctl enable --now mariadb

Vérifions le statut du service:

systemctl status mariadb

Si ces lignes aparaissent le service est fonctionnel:

● mariadb.service - MariaDB 10.3 database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
   Active: active (running) since *

   
   
Par défaut il n'y a pas de mot de passe, pour cela nous allons lancer le script suivant afin de sécuriser mysql.

Paramétrons l'utilisateur root:

mysql_secure_installation

S'ensuivent des questions auxquelles nous répondrons à toutes par un "y".

Choix d'un mot de passe fort de 16 caractères maximum et sans caractères alphanumériques, préférence avec un gestionnaire de mot de passe par exemple keepassxc.


Une fois le paramétrage terminé on pourra se connecter à mariadb:

mysql -u root -p

Nous allons plus tard utiliser phpMyAdmin pour la création d'une base de donnée.


Ic PHP.


Par défaut les dépôts de centOS 8.1 proposent la version 7.2 de PHP, or nous désirons la dernière version en date soit la 7.4, pour cela il suffit de réinitialiser PHP.

Installation du dernier module PHP:

dnf module reset php
dnf module install php:remi-7.4 -y

Installation des plugins nécessaires à glpi:

dnf install php-mysqlnd php-opcache php-gd php-xmlrpc php-ldap php-imap php-soap php-pecl-apcu php-pear php-devel make libsodium libsodium-devel php-pear-CAS -y

Compilons l'extension sodium nécessaire plus tard dans glpi:

sudo pecl install -f libsodium

Rajoutons l'extension dans le fichier php.ini:

echo "extension=sodium.so" >> /etc/php.ini

Nous allons tester PHP:

nano /var/www/html/info.php

Puis éditez le fichier avec le script suivant:

<?php 
phpinfo(); 
?>

Redémarrer le service apache pour la prise en compte des modifications:

systemctl restart httpd

Ouvrir une page web et se rendre à l'adresse suivante pour tester le script:

http://mon_ip/info.php

S'ouvre une page web informant de la version et configuration de php:

php.png


Une fois effectué il est préférable de supprimer notre script de teste ainsi que celui de l'index pour plus de sécurité:

rm -rf /var/www/html/*

Id phpMyAdmin.


Passons à l'installation de phpMyAdmin:

dnf  install phpmyadmin -y

Redémarrez le service apache pour la prise en compte de pma:

systemctl restart httpd

Testons ensuite phpMyAdmin dans un navigateur web:

http://mon_ip/phpmyadmin

S'ouvre une page web proposant la configuration de la langue de phpMyAdmin:

pma.png


Il suffira de renseigner les identifiants précédemment configurés pour rentrer dans l'interface de phpMyAdmin.

Notre LAMP est maintenant prêt à l'emploi, prochaine étape l'installation et le paramétrage de glpi.


II Installation GLPI et plugins.


Nous allons nous placer dans le dossier tmp:

cd /tmp

Puis téléchargeons GLPI 9.4.6, car le plugin webservices n'est plus compatible avec la version 9.5:

wget https://github.com/glpi-project/glpi/releases/download/9.4.6/glpi-9.4.6.tgz

Extrayons GLPI:

tar -xvzf glpi-9.4.6.tgz

Copions le dossier glpi dans le dossier html:

cp -R /tmp/glpi /var/www/html/

Nous gardons ainsi une copie conforme du dossier glpi de départ au cas ou.

Donnons les permissions adéquates:

chown -R apache:apache /var/www/html/glpi
chmod -R 755 /var/www/html/glpi

Rajoutons des droits SELinux pour le serveur Web:

chcon -R -t httpd_sys_rw_content_t /var/www/html/glpi
chcon -R -t httpd_sys_script_rw_t -u system_u /var/www/html/glpi

Activons ensuite certains booléens SELinux requis:

setsebool -P httpd_can_network_connect on
setsebool -P httpd_can_network_connect_db on
setsebool -P httpd_can_sendmail on

Créeons le fichier de configuration pour interdire l’accès aux répertoires sensibles:

nano /etc/httpd/conf.d/glpi.conf

Dans ce fichier de configuration remplacez les astérix dans require ip par votre ip locale, ne surtout pas oublier de la retirer en fin d'installation!

<virtualhost *:80>
Alias /glpi /var/www/html/glpi
DocumentRoot /var/www/html/glpi
ServerName glpi
# Redirect configuration for multi-glpi installation
# You can set this value in each vhost configuration
#SetEnv GLPI_CONFIG_DIR /etc/glpi

<Directory /var/www/html/glpi>
    Options None
    AllowOverride Limit Options FileInfo

    <IfModule mod_authz_core.c>
        Require all granted
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order deny,allow
        Allow from all
    </IfModule>
</Directory>
<Directory /var/www/html/glpi/install>

    # Install is only allowed via local access (from the GLPI server).
    # Add your IP address if you need it for remote installation,
    # but remember to remove it after installation for security.

    <IfModule mod_authz_core.c>
        # Apache 2.4
        Require local 
    </IfModule>
	
    <IfModule !mod_authz_core.c>
        # Apache 2.2
        Order Deny,Allow
        Deny from All
        Allow from 127.0.0.1
        Allow from ::1
    </IfModule>

ErrorDocument 403 "<p><b>Restricted area.</b><br />Only local access allowe$

    <IfModule mod_php5.c>
        # migration could be very long
        php_value max_execution_time 0
        php_value memory_limit -1
    </IfModule>
	
    <IfModule mod_php7.c>
        # migration could be very long
        php_value max_execution_time 0
        php_value memory_limit -1
    </IfModule>
</Directory>

<Directory /var/www/html/glpi/config>
    Order Allow,Deny
    Deny from all
</Directory>

<Directory /var/www/html/glpi/locales>
    Order Allow,Deny
    Deny from all
</Directory>

<Directory /var/www/html/glpi/install/mysql>
    Order Allow,Deny
    Deny from all
</Directory>

<Directory /var/www/html/glpi/scripts>
    Order Allow,Deny
    Deny from all
</Directory>
</virtualhost>

Testons si la syntaxe est bonne dans httpd:

httpd -t

si une erreur il y a vous le saurez très vite, sinon ce sera syntaxe ok


Téléchargeons ensuite fusioninventory for glpi:

wget https://github.com/fusioninventory/fusioninventory-for-glpi/releases/download/glpi9.4%2B2.4/fusioninventory-9.4+2.4.tar.bz2

Extrayons fusioninventory:

tar -xvf fusioninventory-9.4+2.4.tar.bz2

Copions le dossier vers celui des plugins dans glpi:

cp -R /tmp/fusioninventory /var/www/html/glpi/plugins/

Le plugin glpi-webservices 2.0 n'est plus supporté sous glpi 9.5.


Et pour finir le plugin Webservices utilisé pour connecter l'application GOATS:

GOATS

wget https://forge.glpi-project.org/attachments/download/2299/glpi-webservices-2.0.0.tar.gz

Extrayons Webservices:

tar -xvzf glpi-webservices-2.0.0.tar.gz

Copions le dossier webservices vers le dossier plugins:

cp -R /tmp/webservices /var/www/html/glpi/plugins/

Redémarrons le service apache:

systemctl restart httpd

Puis Testons GLPI dans un navigateur web:

http://mon_ip/glpi

S'ouvre une page d'accueil de GLPI:

glpi.png


IIa Création base de donnée.


Nous allons générer une nouvelle base de donnée via phpMyAdmin.


Pour cela rendons nous dans une fenêtre de votre navigateur web et tapez:

http:/mon_ip/phpmyadmin

Dans la page d'accueil renseignez root comme utilisateur et votre mdp généré précédemment via mariadb.


Une fois dans l'interface rendons nous dans l'onglet comptes utilisateurs:

pma1.png


Ajoutons ensuite un nouvel utilisateur en sélectionnant l'onglet "Ajouter un compte utilisateur":

pma2.png


Renseignez comme suit en choisissant un mot de passe fort de 16 caractères minimum et privilégiez un gestionnaire de mdp:

pma3.png


Donnons lui tout les droits:

pma4.png


Et enfin executer sa création:

pma5.png

pma6.png


Quittons ensuite phpMyAdmin pour se connecter avec notre nouvel utilisateur:

pma7.png


Une fois dans l'interface nous allons créer une nouvelle base de donnée en sélectionnant l'onglet "Bases de données":

pma8.png


Nommons notre base comme suit:

pma9.png


Notre base est visible dans l'accueil:

pma10.png


Il s'agit d'une base de donnée vierge, nous iront la structurer plus tard dans la configuration de GLPI.


IIb Paramétrage GLPI.


Place au paramétrage de GLPI et des plugins en images.


Acceptons la licence:

glpi1.png


Intallation:

glpi2.png


Vérification si toutes les dépendances sont satisfaites:

glpi.png

glpi4.png


Synchronisation de GLPI avec mariadb:

les identifiants sont localhost - glpi - mdp de glpi créés précédemment dans phpMyAdmin

glpi5.png


GLPI découvre une base de donnée existante:

glpi6.png


Ayant fait cette procédure sur une machine virtuelle (ignorez cette étape si vous avez une installation native), si vous avez un message d'erreur 504, il suffira d'augmenter le TimeOut dans httpd.conf:

nano /etc/httpd/conf/httpd.conf

Rajoputez ces lignes en fin de page:

#TimeOut
TimeOut 600

A augmenter en cas  de besoin.


Redémarrons apache pour prendre en compte les modifications:

systemctl restart httpd

Il suffira de réinitialiser le fichier de configuration comme suit:

rm -rf /var/www/html/glpi/config/config_db.php

Puis regénérer les étapes précédentes.


Si tout concorde la base de donnée est générée:

glpi7.png


Vous pouvez choisir d'envoyer des statistiques d'usages:

glpi8.png


J'encourage a effectuer un don pour l'énorme travail produit:

glpi9.png


Installation terminée:

glpi10.png


Prochaine étape s'identifier, l'utilisateur et mdp par défaut sont glpi, à changer bien sur une fois dans l'interface:

glpi11.png


Nous allons supprimer le script d'installation pour plus de sécurité comme suggéré par GPI:

glpi12.png


rm -rf /var/www/html/glpi/install/install.php

Passons ensuite à l'attributions de nouveaux mots de passe aux utilisateurs par défaut:

glpi13.png

glpi14.png


IIc Paramétrage du plugin fusioninventory.


Le plugin glpi-webservices 2.0 n'est plus supporté sous glpi 9.5.


Tout d'abord nous allons installer fusioninventory et l'activer.

Pour cela se rendre dans l'onglet Configuration puis Plugins:

fus.png


Dans le panneau Plugins nous apercevons nos 2 protagonistes:

fus1.png


Installons d'abord webservices puis fusioninventory:

fus2.png


Et pour finir activons les plugins en commençant par webservices puis fusioninventory:

fus3.png

Pour résoudre le problème de cron avec fusioninventory:

https://forum.glpi-project.org/viewtopi … 95#p343895


Pour la suite je vous laisse la lecture de mon précédent projet, dans lequel vous pourrez puiser des idées quand à l'utilisation de fusioninventory et bien plus.

https://forum.glpi-project.org/viewtopic.php?id=43472


Sources:
        https://forum.glpi-project.org
        https://blog.remirepo.net/post/2019/12/ … -or-Fedora
        https://httpd.apache.org/docs/2.4/fr/
        https://computingforgeeks.com/how-to-in … os-rhel-8/

Last edited by vandykmarsu (2020-07-24 13:59:49)

Offline

#2 2020-07-22 16:22:21

vandykmarsu
Member
Registered: 2014-11-02
Posts: 25

Re: Procédure d'installation LAMP/GLPI/Fusioninventory sur CentOS 8.2

Mise à niveau et rectification ce jour de mon topic vers les dernières versions de CentOS, GLPI et FusionInventory.

Last edited by vandykmarsu (2020-07-22 16:23:52)

Offline

Board footer

Powered by FluxBB