PHP est un langage de script populaire à usage général, particulièrement adapté au développement Web. Il est rapide, flexible et pragmatique et alimente tout, des blogs aux sites Web les plus populaires au monde. PHP offre une prise en charge étendue de diverses bases de données, ce qui en fait un outil essentiel pour les scripts côté serveur.
Le guide suivant démontrera les étapes pour installer PHP sur Rocky Linux 9 ou 8 à l'aide de commandes de ligne de commande. La méthode d'installation implique l'utilisation du référentiel Remi RPM pour les dernières versions stables de PHP 8.1, 8.2 et 8.3.
Importer le dépôt Remi PHP RPM
Mettre à jour Rocky Linux avant l'installation de PHP
Commencez par mettre à jour votre système Rocky Linux pour préparer l'installation de PHP. Ouvrez le terminal et saisissez :
sudo dnf upgrade --refresh
Importer le référentiel PHP Remi
Configuration du référentiel EPEL
EPEL (Extra Packages for Enterprise Linux) est crucial pour les packages logiciels supplémentaires dans Rocky Linux. Vous trouverez ci-dessous deux options pour installer EPEL sur Rocky Linux pour la dernière version EL9 ou EL8.
Importer EPEL pour Rocky Linux 9
Activer CRB
CRB donne accès à davantage d’outils de développement. Utiliser:
sudo dnf config-manager --set-enabled crb
Installer les référentiels EPEL
Pour obtenir les dernières versions EPEL pour Rocky Linux 9 :
sudo dnf install \
https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm \
https://dl.fedoraproject.org/pub/epel/epel-next-release-latest-9.noarch.rpm
Incorporez le référentiel Remi conçu pour EL 9 :
sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm -y
Importer EPEL pour Rocky Linux 8
Activer le référentiel PowerTools
PowerTools est essentiel pour les outils de développement PHP.
sudo dnf config-manager --set-enabled powertools
Activer EPEL pour Rocky Linux 8
Installez les référentiels EPEL pour Rocky Linux 8 :
sudo dnf install \
https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm \
https://dl.fedoraproject.org/pub/epel/epel-next-release-latest-8.noarch.rpm
Importer le référentiel Remi EL 8
Une fois EPEL installé, importez le RPM Remi contenant PHP pour EL 8 :
sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm -y
Activer PHP (8.x) à partir du référentiel Remi
Vérification des versions PHP
Commencez par confirmer les versions PHP disponibles dans le référentiel Remi. Cela garantit que vous avez accès à la version PHP souhaitée.
Exécuter dans le terminal :
dnf module list php
Si vous y êtes invité, importez la clé GPG pour le référentiel de Remi en tapant (Y).
Sélection de votre version PHP
Activer PHP 8.3
Pour installer PHP 8.3, une version stable et récente, utilisez :
sudo dnf module enable php:remi-8.3 -y
Activer PHP 8.2
Pour PHP 8.2, adapté aux applications nécessitant cette version spécifique :
sudo dnf module enable php:remi-8.2 -y
Activer PHP 8.1
Pour activer PHP 8.1, idéal pour la compatibilité avec certaines applications :
sudo dnf module enable php:remi-8.1 -y
Finaliser l'installation de PHP
Installation de PHP pour le support Apache ou Nginx
Après avoir activé le référentiel Remi PHP, vous pouvez installer PHP adapté aux besoins de votre serveur Web, Apache ou Nginx.
Apache (httpd)Installation PHP
sudo dnf install php php-cli -y
Installation de Nginx PHP
sudo dnf install php-fpm php-cli -y
Vérification de l'installation de PHP
Confirmez l'installation de PHP en exécutant :
php -v
Installation des extensions PHP
Installez les extensions PHP essentielles en fonction des besoins de votre projet. Évitez d'installer toutes les extensions pour maintenir des performances et une sécurité optimales.
Installation standard
sudo dnf install php-cli php-fpm php-curl php-mysqlnd php-gd php-opcache php-zip php-intl php-common php-bcmath php-imagick php-xmlrpc php-json php-readline php-memcached php-redis php-mbstring php-apcu php-xml php-dom php-redis php-memcached php-memcache
Installation simplifiée
Pour une commande d'installation compacte :
sudo dnf install php-{cli,fpm,curl,mysqlnd,gd,opcache,zip,intl,common,bcmath,imagick,xmlrpc,json,readline,memcached,redis,mbstring,apcu,xml,dom,memcache}
Maintenant, décomposons ce que fait chacune de ces extensions PHP :
- php-cli: Interface de ligne de commande pour PHP, utile pour exécuter des scripts PHP dans le shell.
- php-fpm: FastCGI Process Manager, utile pour gérer et servir les requêtes PHP.
- php-curl: Vous permet de vous connecter et de communiquer avec différents types de serveurs et de protocoles.
- php-mysqlnd: MySQL Native Driver, utilisé pour les connexions aux bases de données MySQL.
- php-gd: Graphics Draw, utile pour créer et manipuler des fichiers image.
- php-opcache: Opcode Cache, utilisé pour accélérer l'exécution de PHP.
- php-zip: Vous permet de travailler avec des archives zip.
- php-intl: Extension d'internationalisation pour travailler avec des jeux de caractères et des paramètres régionaux internationaux.
- php-commun: Fichiers et paramètres communs utilisés par plusieurs modules PHP.
- php-bcmath: La calculatrice binaire permet des mathématiques de précision arbitraire.
- php-imagick: Fournit des méthodes pour créer et modifier des images à l’aide de la bibliothèque ImageMagick.
- php-xmlrpc: Permet de créer un serveur XML-RPC et facilite l'envoi de requêtes XML-RPC.
- php-json: Extension JSON (JavaScript Object Notation) pour encoder et décoder les données JSON.
- php-readline: Permet de lire une ligne de données depuis le terminal.
- php-memcached: Fournit une mise en cache rapide et distribuée des objets de mémoire.
- php-redis: Extension PHP pour s'interfacer avec Redis.
- php-mbstring: Chaîne multi-octets pour la gestion des chaînes non-ASCII.
- php-apcu: APC User Cache, une extension de mise en cache de l'espace utilisateur basée sur APC.
- php-xml: Analyseur XML pour analyser les documents XML.
- php-dom: Document Object Model, pour manipuler des documents XML de manière orientée objet.
- php-memcache: Fournit une interface procédurale et orientée objet pratique pour memcached.
- savon php: Utilisé pour écrire des serveurs et des clients SOAP.
- php-ldap: Protocole d'accès léger à l'annuaire utilisé pour accéder et gérer les informations d'annuaire.
- php-pdo: PHP Data Objects, une couche d'accès aux bases de données fournissant une méthode d'accès uniforme à plusieurs bases de données.
Vous pouvez utiliser la commande suivante pour afficher les modules chargés à tout moment.
php -m
Une surveillance régulière et la suppression des modules inutiles sont recommandées pour l'efficacité des performances.
Installation des outils de développement PHP
À des fins de développement, installez la branche de développement PHP et les outils de débogage :
Branche de développement PHP
sudo dnf install php-devel
Outils de débogage PHP
sudo dnf install php-xdebug php-pcov
Il est important de noter que l'installation de cette version entraînera plusieurs dépendances, et il n'est pas recommandé de le faire, sauf si vous en avez un besoin spécifique dans votre développement PHP ou toute exigence particulière.
Configurer l'utilisateur PHP-FPM Nginx sur Rocky Linux
Ajustement de PHP-FPM pour Nginx
Les distributions basées sur RHEL comme Rocky Linux utilisent par défaut l'utilisateur « Apache » pour PHP-FPM, ce qui ne convient pas aux configurations Nginx. Il est indispensable de modifier cela pour un fonctionnement optimal avec Nginx.
Modification de la configuration PHP-FPM
Ouvrir le fichier de configuration
Accéder au www.conf
fichier à éditer :
sudo nano /etc/php-fpm.d/www.conf
Modifier les paramètres d'utilisateur et de groupe
Remplacez l'utilisateur et le groupe Apache par Nginx dans le fichier.
Post-modification :
Enregistrez vos modifications en appuyant sur (CTRL+O), puis quittez avec (CTRL+X).
Redémarrez le service PHP-FPM
Après avoir modifié la configuration, redémarrez PHP-FPM pour appliquer les modifications :
sudo systemctl restart php-fpm
Exemple de code de bloc du serveur Nginx PHP-FPM
Configuration de Nginx pour le traitement PHP
Pour permettre à Nginx de gérer les fichiers PHP, le bloc serveur doit être configuré correctement. L'exemple suivant illustre la configuration nécessaire dans le server{}
bloc pour le traitement des fichiers PHP.
Configuration Nginx PHP-FPM
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
Validation de la configuration Nginx
Après avoir mis à jour la configuration, validez-la pour garantir l'absence d'erreurs de syntaxe.
sudo nginx -t
Le résultat attendu devrait confirmer que la configuration est correcte :
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Redémarrage du service Nginx
Pour appliquer les modifications, redémarrez le service Nginx :
sudo systemctl restart nginx
Ce redémarrage est indispensable pour les modifications et pour que Nginx commence à traiter les fichiers PHP avec la nouvelle configuration.
Conclusion
Très bien, cela conclut notre voyage ! Nous avons réussi à configurer PHP sur Rocky Linux, à le peaufiner pour Apache ou Nginx et à affiner PHP-FPM pour des performances optimales. N'oubliez pas que la vérification régulière de vos modules et configurations PHP garantit le bon fonctionnement. Et n'oubliez pas de redémarrer vos services après toute modification.