Serveur Web · 5 min read · Dec 27, 2025

Utiliser PHP5-FPM avec Apache 2.4 (+ module mod_proxy_fcgi) sur Fedora 18

Utiliser PHP5-FPM avec Apache 2.4 (+ module mod_proxy_fcgi) sur Fedora 18

Version 1.0
Auteur : Falko Timme
Suivez-moi sur Twitter

Ce tutoriel montre comment installer un serveur web Apache 2.4 sur un serveur Fedora 18 avec PHP5 (via PHP-FPM) et un support MySQL. PHP-FPM (FastCGI Process Manager) est une implémentation alternative de PHP FastCGI avec des fonctionnalités supplémentaires utiles pour des sites de toute taille, en particulier les sites plus fréquentés. Sur Apache 2.4, nous avons besoin du module mod_proxy_fcgi d’Apache pour le faire fonctionner.

Je ne donne aucune garantie que cela fonctionnera pour vous !

1 Remarque préliminaire

Dans ce tutoriel, j’utilise le nom d’hôte server1.example.com avec l’adresse IP 192.168.0.100. Ces paramètres peuvent différer pour vous, donc vous devez les remplacer là où cela est approprié.

2 Installer MySQL 5

Pour installer MySQL, nous faisons ceci :

yum install mysql mysql-server

Ensuite, nous créons les liens de démarrage système pour MySQL (afin que MySQL démarre automatiquement chaque fois que le système démarre) et démarrons le serveur MySQL :

systemctl enable mysqld.service   
systemctl start mysqld.service

Définissez des mots de passe pour le compte root MySQL :

mysql_secure_installation

[root@server1 ~]# mysql_secure_installation

NOTE : L’EXÉCUTION DE TOUTES LES PARTIES DE CE SCRIPT EST RECOMMANDÉE POUR TOUS LES SERVEURS MySQL EN PRODUCTION ! VEUILLEZ LIRE CHAQUE ÉTAPE ATTENTIVEMENT !

Pour se connecter à MySQL afin de le sécuriser, nous aurons besoin du mot de passe actuel pour l’utilisateur root. Si vous venez d’installer MySQL, et que vous n’avez pas encore défini le mot de passe root, le mot de passe sera vide, donc vous devriez simplement appuyer sur entrer ici.

Entrez le mot de passe actuel pour root (appuyez sur entrer pour aucun) :
OK, mot de passe utilisé avec succès, passage à la suite…

Définir le mot de passe root ? [Y/n] <– ENTRER
Nouveau mot de passe : <– votremotdepassepourroot
Ressaisir le nouveau mot de passe : <– votremotdepassepourroot
Mot de passe mis à jour avec succès !
Rechargement des tables de privilèges..
… Succès !

Par défaut, une installation MySQL a un utilisateur anonyme, permettant à quiconque de se connecter à MySQL sans avoir à avoir un compte utilisateur créé pour eux. Ceci est destiné uniquement à des fins de test, et pour rendre l’installation un peu plus fluide. Vous devriez les supprimer avant de passer à un environnement de production.

Supprimer les utilisateurs anonymes ? [Y/n] <– ENTRER
… Succès !

Normalement, root ne devrait être autorisé à se connecter que depuis ‘localhost’. Cela garantit que quelqu’un ne peut pas deviner le mot de passe root depuis le réseau.

Interdire la connexion root à distance ? [Y/n] <– ENTRER
… Succès !

Par défaut, MySQL vient avec une base de données nommée ‘test’ à laquelle quiconque peut accéder. Ceci est également destiné uniquement à des fins de test, et devrait être supprimé avant de passer à un environnement de production.

Supprimer la base de données de test et l’accès à celle-ci ? [Y/n] <– ENTRER

  • Suppression de la base de données de test…
    … Succès !
  • Suppression des privilèges sur la base de données de test…
    … Succès !

Recharger les tables de privilèges garantira que tous les changements effectués jusqu’à présent prendront effet immédiatement.

Recharger les tables de privilèges maintenant ? [Y/n] <– ENTRER
… Succès !

Nettoyage…

Tout est fait ! Si vous avez complété toutes les étapes ci-dessus, votre installation MySQL devrait maintenant être sécurisée.

Merci d’utiliser MySQL !

[root@server1 ~]#

3 Installer Apache2

Apache2 est disponible en tant que paquet Fedora, donc nous pouvons l’installer comme ceci :

yum install httpd

Ceci est la version 2.4 d’Apache qui ne fonctionne pas avec le module mod_fastcgi qui était utilisé dans Apache 2.2 pour PHP-FPM (voir Utiliser PHP5-FPM avec Apache2 sur Fedora 17) ; nous allons donc utiliser le module mod_proxy_fcgi.

Maintenant, configurez votre système pour démarrer Apache au démarrage…

systemctl enable httpd.service

… et démarrez Apache :

systemctl start httpd.service

Maintenant, dirigez votre navigateur vers http://192.168.0.100, et vous devriez voir la page de placeholder d’Apache2 :

Le document root par défaut d’Apache est /var/www/html sur Fedora, et le fichier de configuration est /etc/httpd/conf/httpd.conf. Des configurations supplémentaires sont stockées dans le répertoire /etc/httpd/conf.d/.

4 Installer PHP5

Nous pouvons faire fonctionner PHP5 dans Apache2 via PHP-FPM et le module mod_proxy_fcgi d’Apache. Le module mod_proxy_fcgi devrait déjà être installé et activé :

ls -l /usr/lib64/httpd/modules/mod_proxy*
[root@server1 modules]# ls -l /usr/lib64/httpd/modules/mod_proxy*  
-rwxr-xr-x 1 root root 52128 Oct 26 16:15 /usr/lib64/httpd/modules/mod_proxy_ajp.so  
-rwxr-xr-x 1 root root 39984 Oct 26 16:15 /usr/lib64/httpd/modules/mod_proxy_balancer.so  
-rwxr-xr-x 1 root root 19400 Oct 26 16:15 /usr/lib64/httpd/modules/mod_proxy_connect.so  
-rwxr-xr-x 1 root root 11192 Oct 26 16:15 /usr/lib64/httpd/modules/mod_proxy_express.so  
-rwxr-xr-x 1 root root 19368 Oct 26 16:15 /usr/lib64/httpd/modules/mod_proxy_fcgi.so  
-rwxr-xr-x 1 root root 11152 Oct 26 16:15 /usr/lib64/httpd/modules/mod_proxy_fdpass.so  
-rwxr-xr-x 1 root root 44184 Oct 26 16:15 /usr/lib64/httpd/modules/mod_proxy_ftp.so  
-rwxr-xr-x 1 root root 39968 Oct 26 16:15 /usr/lib64/httpd/modules/mod_proxy_http.so  
-rwxr-xr-x 1 root root 19464 Oct 26 16:15 /usr/lib64/httpd/modules/mod_proxy_scgi.so  
-rwxr-xr-x 1 root root 98016 Oct 26 16:15 /usr/lib64/httpd/modules/mod_proxy.so  
[root@server1 modules]#
cat /etc/httpd/conf.modules.d/00-proxy.conf

| [...] # Ce fichier configure tous les modules proxy : LoadModule proxy_module modules/mod_proxy.so LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule proxy_express_module modules/mod_proxy_express.so LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so LoadModule proxy_fdpass_module modules/mod_proxy_fdpass.so LoadModule proxy_ftp_module modules/mod_proxy_ftp.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule proxy_scgi_module modules/mod_proxy_scgi.so [...] |

Nous pouvons installer PHP-FPM comme suit :

yum install php-fpm

Ensuite, ouvrez /etc/php.ini :

vi /etc/php.ini

Pour éviter des erreurs comme

[08-Aug-2011 18:07:08] PHP Warning: phpinfo(): Il n'est pas sûr de se fier aux paramètres de fuseau horaire du système. Vous êtes *tenu* d'utiliser le paramètre date.timezone ou la fonction date_default_timezone_set(). Si vous avez utilisé l'une de ces méthodes et que vous obtenez toujours cet avertissement, vous avez probablement mal orthographié l'identifiant de fuseau horaire. Nous avons sélectionné 'Europe/Berlin' pour 'CEST/2.0/DST' à la place dans /usr/share/nginx/html/info.php à la ligne 2

… dans /var/log/php-fpm/www-error.log lorsque vous appelez un script PHP dans votre navigateur, vous devez définir date.timezone dans /etc/php.ini :

| [...] [Date] ; Définit le fuseau horaire par défaut utilisé par les fonctions de date ; http://php.net/date.timezone date.timezone = "Europe/Berlin" [...] |

Vous pouvez trouver le fuseau horaire correct pour votre système en exécutant :

cat /etc/sysconfig/clock
[root@server1 ~]# cat /etc/sysconfig/clock  
ZONE="Europe/Berlin"  
[root@server1 ~]#

Ensuite, créez les liens de démarrage système pour php-fpm et démarrez-le :

systemctl enable php-fpm.service  
systemctl start php-fpm.service

PHP-FPM est un processus daemon (avec le script d’initialisation /etc/init.d/php-fpm) qui exécute un serveur FastCGI sur le port 9000.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.