J'ai enfin trouvé un bon tutoriel destiné à cela. Je vais décrire les étapes que j’ai suivies car j’avais déjà ma pile LAMP installée mais le tutoriel complet se trouve ici .
Note pour le nouveau:
Dans le tutoriel, il commence par basculer sur l'utilisateur root avec:
sudo su
Dans mon cas, j'ai simplement préfixé ces commandes sudo
au lieu de changer d'utilisateur, je vais donc documenter mes étapes de cette façon.
Commencer
Première étape: installer Apache Worker MPM (modules de traitement multiple)
sudo apt-get install apache2-mpm-worker
Cela remplace le prefork que j'avais installé, qui est la valeur par défaut lors de l'installation d'Apache.
Étape 2: Installez PHP5 et les modules nécessaires
sudo apt-get install libapache2-mod-fastcgi php5-fpm php5
À ce stade, vous risquez d'obtenir une erreur lors de l'installation de 'libapache2-mod-fastcgi':
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package libapache2-mod-fastcgi is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or is only available from another source
E: Package 'libapache2-mod-fastcgi' has no installation candidate
Cette partie n'est pas dans le tutoriel ci-dessus
Pour réconcilier cela, le multiverse
référentiel doit être ajouté aux sources apt.
Pour faire ça:
sudo nano /etc/apt/sources.list
A quoi j'ai ajouté les lignes suivantes:
deb http://archive.ubuntu.com/ubuntu precise multiverse
deb http://archive.ubuntu.com/ubuntu precise-updates multiverse
deb http://security.ubuntu.com/ubuntu precise-security multiverse
precise
dans ce cas, fait référence à ma version d’Ubuntu " Precise Pangolin ".
Alors maintenant, enregistrez ces modifications et revenez au terminal:
sudo apt-get update
et encore:
sudo apt-get install libapache2-mod-fastcgi php5-fpm php5
qui va (devrait) maintenant fonctionner.
Activez maintenant ces modules Apache:
sudo a2enmod actions fastcgi alias
redémarrer apache
sudo service apache2 restart
Étape 3: configuration Apache
Pour que Apache fonctionne avec PHP-FPM, nous avons besoin de la configuration suivante:
<IfModule mod_fastcgi.c>
AddHandler php5-fcgi .php
Action php5-fcgi /php5-fcgi
Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -pass-header Authorization
<Directory /usr/lib/cgi-bin>
Require all granted
</Directory>
#directory statement mult be on multiple lines
</IfModule>
Remarque:
Si vous utilisez une version antérieure d’Apache (2.3.x ou antérieure), laissez la ligne
<Directory /usr/lib/cgi-bin> Require all granted </Directory>
Vous pouvez vérifier votre version installée avec la commande
apache2 -version
Vous pouvez le mettre dans la configuration globale d’Apache (donc activé pour tous les vhosts), par exemple dans /etc/apache2/conf.d/php5-fpm.conf
(ce fichier n'existe pas, vous devez donc le créer), ou vous pouvez le placer dans chaque hôte qui doit utiliser PHP-FPM.
J'ai choisi la voie mondiale, donc:
sudo nano /etc/apache2/conf.d/php5-fpm.conf
coller dans le bloc de code ci-dessus, et sauvegarder, quitter. Ce nouveau fichier sera automatiquement chargé par la configuration par défaut d’Apache qui charge tous les fichiers du répertoire./etc/apache2/conf.d/
répertoire.
redémarrez Apache:
sudo service apache2 restart
Maintenant, créez le fichier PHP suivant dans la racine du document /var/www
:
sudo nano /var/www/info.php
Ajouter:
<?php phpinfo();
sauvegarder et quitter.
Maintenant, nous appelons ce fichier dans un navigateur (par exemple http://your-server-ip/info.php
)
Sous API du serveur en haut, vous devriez voir FPM/FastCGI
.
Succès!
Pour plus d'informations sur la modification du protocole PHP-FPM afin qu'il utilise un socket Unix au lieu du port TCP par défaut ou sur la configuration de celui-ci pour des hôtes virtuels individuels au lieu de chacun d'entre eux, voir le tutoriel source lié en haut.