Comment installer Apache avec PHP-FPM sur CentOS 8

Comment installer Apache avec PHP-FPM sur CentOS 8

La façon courante d'exécuter PHP avec Apache est le module MOD_PHP. Mais PHP-FPM a plusieurs avantages à ce sujet. Le PHP-FPM (FastCGI Process Manager) augmente considérablement les performances de votre environnement Apache / PHP. C'est donc utile pour les sites Web de grande charge. Ce tutoriel vous aidera à configurer PHP-FPM avec Apache sur Centos 8 et Rhel 8 Linux System.

Préalables

  • Accès à la coque au système CentOS 8 avec le compte privilèges sudo.
  • Compléter la configuration du serveur initial pour les systèmes nouvellement installés.

Étape 1 - Installez Apache

Les packages Apache sont disponibles dans le référentiel Appstream par défaut. Vous pouvez simplement mettre à jour le cache DNF et installer les packages de serveur Web Apache à l'aide des commandes suivantes.

sudo dnf mise à jour sudo dnf installer httpd httpd-tools mod_ssl 

Le package MOD_SSL fournit la fonctionnalité pour utiliser un certificat SSL pour HTTP sécurisé. Après l'installation, activez le service HTTPD et démarrez.

sudo systemctl activer httpd sudo systemctl start httpd 

Étape 2 - Installez PHP avec PHP-FPM

Le référentiel REMI contient les derniers packages PHP pour le système CentOS 8 Linux. Donc, tout d'abord, vous devez ajouter le référentiel REMI à votre système. Exécutez simplement la commande suivante pour ajouter le référentiel.

sudo dnf installer dnf-utils http: // rpms.remirepo.Net / Enterprise / REMI-Release-8.RPM 

Ensuite, activez le module DNF requis pour l'installation de PHP. Ici, nous permettons le module pour installer PHP 7.4. Vous pouvez changer cela en php 7.3 ou php 7.2 selon vos exigences.

module sudo dnf réinitialiser le module dnf php sudo activer php: remi-7.4 

Maintenant, installez le PHP sur votre système. Comme nous allons utiliser FastCGI Process Manager (FPM) pour cette configuration. Alors installez également le package PHP-FPM.

sudo dnf mise à jour sudo dnf installer php php-fpm php-gd php-mysqlnd 

Vous pouvez également avoir besoin de plus de modules PHP, alors installez-les avant de passer ensuite. Après avoir terminé l'installation de PHP, activez le service PHP-FPM et démarrez-le.

sudo systemctl activer php-fpm sudo systemctl start php-fpm 

Assurez-vous que le service PHP-FPM fonctionne.

Sudo Systemctl Status Php-fpm ● PHP-FPM.Service - Le gestionnaire de processus PHP FastCGI chargé: chargé (/ usr / lib / systemd / system / php-fpm.service; désactivé; Vendor Preset: Disabled) Active: Active (Running) Depuis le lundi 2019-12-09 21:44:57 PST; 1h 24min il y a Pid principal: 29280 (PHP-FPM) Statut: "Processus actifs: 0, inactif: 5, demandes: 3, lent: 0, trafic: 0req / sec" Tâches: 6 (limite: 10321) Mémoire: 24.6m cgroup: / système.tranche / php-fpm.Service ├fique.Conf) ├─29281 PHP-FPM: Pool www ├fique : 44: 57 Tecadmin.exemple.com Systemd [1]: Démarrage du gestionnaire de processus PHP FastCGI… Dec 09 21:44:57 Tecadmin.exemple.com systemd [1]: a commencé le gestionnaire de processus PHP FastCGI. 

Étape 3 - Configurer PHP-FPM

À cette étape, vous avez installé tous les packages requis. Commençons le processus de configuration. Tout d'abord, modifiez le fichier de configuration PHP-FPM pour Apache:

sudo vim / etc / php-fpm.d / www.confli 

Faire les modifications comme ci-dessous. Les dernières versions d'Apache peuvent se connecter à la prise à l'aide d'un proxy. Alors assurez-vous que l'écoute est définie sur un fichier de socket.

Ensuite définir l'utilisateur et regrouper le même serveur Apache en utilisant. Si vous avez besoin de connecter FPM à partir d'un système distant Changement.Autorisé_CLIENTS à LAN IP au lieu de 127.0.0.1.

; Écouter = 127.0.0.1: 9000 écouter = / run / php-fpm / www.Sock User = Apache Group = Apache écouter.ALLIMED_CLIENTS = 127.0.0.1 écouter.propriétaire = Apache écouter.Groupe = Apache Écoute.mode = 0660 pm = dynamique
1234567891011; Écouter = 127.0.0.1: 9000Listen = / Run / Php-fpm / www.chaussette utilisateur = apachegroup = apache écouter.ALLIMED_CLIENTS = 127.0.0.1 coquette.propriétaire = apachesten.groupe = apachesten.mode = 1660pm = dynamique

Après avoir apporté des modifications à redémarrer le service PHP-FPM pour appliquer les modifications.

sudo systemctl redémarrer php-fpm 

Étape 4 - Créer Apache VirtualHost

Maintenant, le moment est de configurer Apache pour utiliser PHP-FPM pour le traitement des fichiers PHP. Voici deux options, soit vous utilisez FPM par défaut pour tous les hôtes virtuels, soit vous pouvez spécifiquement configurer l'hôte virtuel pour utiliser FPM. De cette façon, d'autres hôtes virtuels ne seront pas affectés.

Pour cet exemple, je configure FPM pour un hôte virtuel spécifique uniquement. Donc, fichier de configuration modifié dans l'éditeur de texte:

sudo vim / etc / httpd / confre.d / exemple.com.confli 

Maintenant ajouté la configuration proxy à l'aide d'un fichier de socket. A également configuré tout le script PHP pour utiliser le gestionnaire FPM pour l'exécution.

ServerAdmin Admin @ Exemple.com documentroot / var / www / html servername Exemple.com servealias www.exemple.com # Déclaration de proxy # Nous devons déclarer un paramètre ici (peu importe lequel) ou # Il n'enregistrera pas le proxy à l'avance Proxyset DisableReUse = OFF # Remarque: Si vous configurez PHP-FPM pour utiliser "PM = onDemand "#Then Use" proxyset DisableReUse = on "Sethandler proxy: fcgi: // php-fpm errorlog journaux / exemple.com-error.Journal des journaux / exemple de journal Customlog.com-accès.journal combiné
12345678910111213141516171819202122232425 ServerAdmin Admin @ Exemple.com documentroot / var / www / html servername Exemple.com servealias www.exemple.Com # Déclaration de proxy # Nous devons déclarer un paramètre ici (peu importe lequel) ou # Il n'enregistrera pas le proxy à l'avance Proxyset DisableReUse = OFF # Remarque: Si vous configurez PHP-FPM pour utiliser le "PM = onDemand" #Then Utilisez "Proxyset DisableReUse = ON" Sethandler Proxy: fcgi: // php-fpm Journaux d'erreur / exemple.com-error.Journal des journaux / exemple de journal Customlog.com-accès.journal combiné

Enregistrez le fichier de configuration de l'hôte virtuel et rechargez Apache pour appliquer les modifications.

sudo systemctl redémarrer httpd 

Étape 5 - Activer les règles du pare-feu

Votre serveur est prêt à servir l'application. S'il y a un pare-feu activé sur votre système, assurez-vous que les ports Apache sont ouverts à l'accès à partir de systèmes distants.

Les commandes suivantes ouvriront les ports requis pour vous.

Sudo Firewall-Cmd --zone = public --permanent --add-Service = Http sudo Firewall-Cmd --zone = public --permanent --add-Service = https sudo firewall-cmd --reload 

Étape 6 - Configuration du test

Terminé. Pour tester l'environnement, créez un script PHP avec phpinfo () fonction. Placez ce fichier à la racine du document de votre serveur. Utilisez la commande ci-dessous pour le faire.

écho ""> / var / www / html / info.php 

Puis accéder aux informations.PHP à l'aide de l'adresse IP du serveur (pour VirtualHost par défaut) pour votre domaine configuré dans Apache VirtualHost.

http: // localhost / info.php 

Conclusion

Vous avez configuré avec succès un Apache avec PHP-FPM sur votre système CentOS 8 ou RHEL 8 Linux. Vous pouvez désormais héberger un site Web à partir de votre serveur.