Serveur Web · 5 min read · Jan 01, 2026

Utiliser PHP5-FPM avec Apache2 sur OpenSUSE 12.1

Utiliser PHP5-FPM avec Apache2 sur OpenSUSE 12.1

Version 1.0
Auteur : Falko Timme
Suivez-moi sur Twitter

Ce tutoriel montre comment installer un serveur web Apache2 sur un serveur OpenSUSE 12.1 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.

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 Activation des Dépôts Supplémentaires

Nous devons installer mod_fastcgi plus tard, qui est disponible dans un dépôt qui n’est pas activé par défaut. Nous pouvons l’activer comme suit :

zypper --gpg-auto-import-keys addrepo --name "Modules tiers pour le serveur HTTP Apache. (Apache_openSUSE_12.1)" http://download.opensuse.org/repositories/Apache:/Modules/Apache_openSUSE_12.1/ apache-third-party-12.1

3 Installation de MySQL 5

Pour installer MySQL, nous faisons ceci :

yast2 -i mysql mysql-client mysql-community-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 mysql.service   
systemctl start mysql.service

Pour sécuriser l’installation de MySQL, exécutez :

mysql_secure_installation

Maintenant, plusieurs questions vous seront posées :

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 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 (entrer pour aucun) : <– ENTRER
OK, mot de passe utilisé avec succès, passage à la suite…

Définir le mot de passe root garantit que personne ne peut se connecter à l’utilisateur root de MySQL sans la bonne autorisation.

Définir le mot de passe root ? [Y/n] <– Y
Nouveau mot de passe : <– remplissez votre mot de passe root MySQL souhaité
Ressaisissez le nouveau mot de passe : <– confirmez ce mot de passe
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 à 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] <– Y
… 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] <– Y
… 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 à 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] <– Y

  • 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] <– Y
… 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 !

server1:~ #

Maintenant, votre configuration MySQL devrait être sécurisée.

4 Installation d’Apache2

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

yast2 -i apache2

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

systemctl enable apache2.service

… et démarrez Apache :

systemctl start apache2.service

Maintenant, dirigez votre navigateur vers http://192.168.0.100, et vous devriez voir la page de placeholder d’Apache2 (ne vous inquiétez pas pour l’erreur 403, cela se produit parce qu’il n’y a pas de fichier index (par exemple, index.html) dans le répertoire racine des documents) :

Le répertoire racine des documents par défaut d’Apache est /srv/www/htdocs/ sur OpenSUSE, et le fichier de configuration est /etc/apache2/httpd.conf. Des configurations supplémentaires sont stockées dans le répertoire /etc/apache2/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 :

yast -i apache2-mod_fastcgi php5-fpm

Avant de démarrer PHP-FPM, renommez /etc/php5/fpm/php-fpm.conf.default en /etc/php5/fpm/php-fpm.conf :

mv /etc/php5/fpm/php-fpm.conf.default /etc/php5/fpm/php-fpm.conf

Changez les permissions du répertoire de session de PHP :

chmod 1733 /var/lib/php5

Ensuite, ouvrez /etc/php5/fpm/php-fpm.conf…

vi /etc/php5/fpm/php-fpm.conf

… et changez error_log en /var/log/php-fpm.log et décommentez pm.min_spare_servers et pm.max_spare_servers :

| [...] error_log = /var/log/php-fpm.log [...] pm.min_spare_servers = 5 [...] pm.max_spare_servers = 35 [...] |

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 démon qui exécute un serveur FastCGI sur le port 9000, comme vous pouvez le voir dans la sortie de

netstat -tapn
server1:~ # netstat -tapn  
Connexions Internet actives (serveurs et établies)  
Proto  Recv-Q  Send-Q  Adresse Locale           Adresse Étrangère         État       PID/Nom du programme  
tcp      0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      2329/nginx  
tcp      0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1204/sshd  
tcp      0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      2511/php-fpm.conf)  
tcp      0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      2059/mysqld  
tcp      0      0 192.168.0.100:22        192.168.0.199:1632      ÉTABLI    1284/0  
tcp      0      0 :::22                    :::*                     LISTEN      1204/sshd  
server1:~ #

Ensuite, activez les modules Apache suivants…

a2enmod actions  
a2enmod fastcgi  
a2enmod alias

… désactivez mod_php5…

a2dismod php5

… et redémarrez Apache :

systemctl restart apache2.service
Share: X/Twitter LinkedIn

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

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