LAMP sur AlmaLinux 8.2

Installation Apache, Mariadb et PHP sur Alamalinux 8.2 et dérivés de RedHat 8

Après l’abandon des versions classiques de Centos et passage a Centos stream, on repart sur Almalinux une distribution qui fonctionne exactement comme CentOs : reprise de la version de RedHat Au nom d’AlmaLinux en version communautaire.

Cette installation est fonctionnelle aussi sur les autres version linux dérivées de la RdHat 8.2 comme Rockylinux, Oracle linux , Centos 8.2.
Tout comme CentOs, l’installation se déroule avec le même installeur (annaconda). Une fois l’installation terminée, vous pouvez lancer la mise a jour du système avec la commande :
#sudo dnf update
On peut installer pour avoir quelques outils utiles le depot Epel
# dnf install epel-release

Pour redhat 8 :
# subscription-manager repos –enable « rhel-8-for-x86_64-supplementary-rpms » –enable « rhel-8-for-x86_64-highavailability-rpms »

De base, après l’installation le parefeu est activé
0n peut le désinstaller ou créer une règle pour ouvrir les services apache
# sudo systemctl stop firewalld
# sudo dnf remove firewalld
Ou ouvrir le parefeu avec la commande  :
#sudo firewall-cmd  – -permanent  – -add-service=http
# sudo firewall-cmd  – -reload

 

Installation apache :
# sudo dnf install httpd
Âpres l installation on peu vérifier l utilisateur créé
# grep apache /etc/passwd
Ensuite on peu lancer le serveur et l’activer au démarrage avec 1 seule commande
# sudo systemctl enable – -now httpd
on test apche avec la commande :
# apachectl configtest  si ok , ça repond : Syntax ok
Ensuite : on peut tester si la machine est accessible soit avec http://localhost depuis la machine soit avec son IP depuis le réseau
Le dossier contenant les pages html est dans : /var/www/html/

pour pouvoir modifier le contenu du dossier html , on ava ajouter l utilisateur au groupe apache :
sudo usermod -aG apache nomutilisateur

installation de PHP
on lance la commande pour l installation de php
# sudo dnf install php
on redémarre apache pour la prise en compte du php
reload relance simplement la configuration du serveur, restart redémarre complètement le serveur
# sudo systemctl restart httpd

On peu maintenant vérifier l’installation avec ce petit fichier qui contient la fonction phpinfo() :
# echo « <?php phpinfo(); ?> » > /var/www/html/phpinfo.php
il suffit de se rendre sur cette page :http://localhost/phpinfo.php pour voir la page des infos PHP (version 7.2).
on peu avoir besoin d’installer certains modules particulier de php, on peu les lister avec la commande :
# sudo dnf search php-
On va en installer quelques une :
# sudo dnf install php-{gd,pdo,xml,mbstring,zip,mysqlnd}
Il faut maintenant relancer le serveur :
# sudo systemctl restart httpd

Les fichiers de configuration d’Apache se trouvent dans le dossier  /etc/httpd/conf
Le fichier httpd.conf contient toute la configuration du serveur
Le fichier de configuration de php est /etc/php.ini
installation du module SSL pour https:
# sudo dnf install mod_ssl

Il faut ensuite ouvrir le port dans le parefeu (port 443) et le redémarrer .
# sudo firewall-cmd  – -add-service=https  – -permanent
# sudo firewall-cmd  – -reload

installation de MariaDb (mysql)
installation des paquets :
# sudo dnf install mariadb-server  mariadb
activation et demarrage :
# sudo systemctl enable– -now mariadb.service
lancer le parametrage de mysql (on y defini le mot de passe root) je répoonds oui a tout.
#sudo mysql_secure_installation
Il demande le mot de passe ( au depart il n y en pas donc en appuie sur entré)
Ensuite il demande si on veut définir le mot de passe root
Set root password ? [Y/n]
On repond yes et on défini le mot e de passe root

  • il demande si on veut enlever l’accés aux  utilisateurs anonymes dans mysql (on répond yes)
  • on interdit a root de se connecter de manière distante ( on repond yes)
  • on desinstalle la base de données test (on repond yes)
  • on recharge les privileges (on répond yes)

maintenant on peu se connecter a notre base de données sql avec
# mysql -u root p
On peut lister les bases existantes avec la commande
mariadb>    show databases ; (Attention toutes les commandes sql se terminent par un 😉
mariadb>    create database tutorial ;
mariadb>    quit ; pour quitter la console mysql

Si on veut pouvoir accéder a la base de données de l’extérieur, il faudra créer un autre utilisateur et ouvrir le parefeu

# firewall-cmd – -add-service=mysql –-permanent
# firewall-cmd – -reload
(port 3306 tcp)


mise a jour de la version de PHP 7.4
On va mettre a jour la version de php, de base avec une alma 8.2 on a la version 7.2 de php dont le support se termine le 1 janvier 2021.
A ce jour le 7.4 support jusqu au 1er janvier 2023
Avec la RedHat 8.2 et les modules, on va pouvoir faire évoluer la version plus simplement que la version 7 .
# dnf module list  permet d’afficher tous les modules (on peut voir qu’on a accès a la version 7.3 et 7.4 de php)
# dnf module list php  pour filtrer seulement les modules php
[d] version par defaut
[e] version utilisée
# dnf module disable php  on répond oui (désactive le module utilisé)
# dnf module enable php :7.4 on répond oui (active le module souhaité)
On fait une mise a jour du système pour mettre a jour tous les modules
# dnf upgrade
Puis on redemarre le serveur apache
# systemctl restart httpd

 


Pour la mise à jour de PHP 8
On va sur la page de Remi’s depot : https://rpms.remirepo.net
Ou directemenet la page de configuration : https://blog.remirepo.net/pages/Config-en
Ou cette commande :
# dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
On met a jour les modules
# dnf upgrade
On peu maintenant verifier les veriosn de php disponibles
# dnf module list php
Maintenant la verison 8 est disponible, on va desctiver le module php
# dnf module disable php
Pour activer ensuite le module desiré :
# dnf module enable php :remi-8.0
On met a jour les modules :
# dnf upgrade
Et on redemarre les services :
# systemctl restart http
# systemctl restart php-fpm