PHP, Apache, CentOS · 5 min read · Dec 30, 2025

Utiliser PHP5-FPM avec Apache2 sur CentOS 6.3

Utiliser PHP5-FPM avec Apache2 sur CentOS 6.3

Version 1.0
Auteur : Falko Timme
Suivez-moi sur Twitter

Ce tutoriel montre comment installer un serveur web Apache2 sur un serveur CentOS 6.3 avec PHP5 (via PHP-FPM) et un support MySQL. PHP-FPM (FastCGI Process Manager) est une implémentation PHP FastCGI alternative avec des fonctionnalités supplémentaires utiles pour des sites de toute taille, en particulier les sites plus fréquentés.

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 où cela est approprié.

2 Activation des Dépôts Supplémentaires

Nous devons installer mod_fastcgi plus tard, qui est disponible dans les dépôts RPMforge. RPMforge peut être activé comme suit :

rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
cd /tmp  
wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm  
rpm -ivh rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

php-fpm n’est pas disponible dans les dépôts officiels de CentOS, mais dans le dépôt RPM de Remi qui dépend lui-même du dépôt EPEL ; nous pouvons activer les deux dépôts comme suit :

rpm --import https://fedoraproject.org/static/0608B895.txt   
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpm
rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi  
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
yum install yum-priorities

Éditez /etc/yum.repos.d/epel.repo…

vi /etc/yum.repos.d/epel.repo

… et ajoutez la ligne priority=10 à la section [epel] :

| [epel] name=Paquets supplémentaires pour Enterprise Linux 6 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch failovermethod=priority enabled=1 priority=10 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 [...] |

Ensuite, faites de même pour la section [remi] dans /etc/yum.repos.d/remi.repo, plus changez enabled à 1 :

vi /etc/yum.repos.d/remi.repo

| [remi] name=Les RPM de remi pour Enterprise Linux $releasever - $basearch #baseurl=http://rpms.famillecollet.com/enterprise/$releasever/remi/$basearch/ mirrorlist=http://rpms.famillecollet.com/enterprise/$releasever/remi/mirror enabled=1 priority=10 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi failovermethod=priority [remi-test] name=Les RPM de remi en test pour Enterprise Linux $releasever - $basearch #baseurl=http://rpms.famillecollet.com/enterprise/$releasever/test/$basearch/ mirrorlist=http://rpms.famillecollet.com/enterprise/$releasever/test/mirror enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi |

3 Installation de 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 :

chkconfig --levels 235 mysqld on  
/etc/init.d/mysqld start

Définissez des mots de passe pour le compte root de 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 USAGE PRODUCTION ! VEUILLEZ LIRE CHAQUE ÉTAPE ATTENTIVEMENT !

Pour se connecter à MySQL pour 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 devez 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 : <– votremotdepasseRootSQL
Ressaisissez le nouveau mot de passe : <– votremotdepasseRootSQL
Mot de passe mis à jour avec succès !
Rechargement des tables de privilèges..
… Succès !

Par défaut, une installation de MySQL a un utilisateur anonyme, permettant à quiconque de se connecter à MySQL sans avoir à avoir un compte utilisateur créé pour eux. Cela est destiné uniquement aux tests, 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 est livré avec une base de données nommée ‘test’ à laquelle quiconque peut accéder. Cela est également destiné uniquement aux tests, 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 de MySQL devrait maintenant être sécurisée.

Merci d’utiliser MySQL !

[root@server1 ~]#

4 Installation d’Apache2

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

yum install httpd

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

chkconfig --levels 235 httpd on

… et démarrez Apache :

/etc/init.d/httpd start

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 CentOS, 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/.

5 Installation de PHP5

Nous pouvons faire fonctionner PHP5 dans Apache2 via PHP-FPM et le module mod_fastcgi d’Apache que nous installons comme suit :

yum install mod_fastcgi 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 devez *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://www.php.net/manual/en/datetime.configuration.php#ini.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 nginx]# cat /etc/sysconfig/clock  
ZONE="Europe/Berlin"  
[root@server1 nginx]#

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

chkconfig --levels 235 php-fpm on  
/etc/init.d/php-fpm start

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.

Ensuite, redémarrez Apache :

/etc/init.d/httpd restart
Share: X/Twitter LinkedIn

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

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