Je suis relativement nouveau dans le monde de la gestion / administration de serveurs Web en ligne de commande unix.
De nombreux hôtes avec des options d’administration du panneau de contrôle vous permettent de changer la façon dont PHP est exécuté avec une simple option.
Les options les plus courantes étant:
- module apache
- Application CGI
- Application FastCGI
Ma question est simplement, comment changez-vous cela via la ligne de commande? Je sais qu'il existe de nombreux fichiers de configuration pour Apache.
La question la plus proche que j'ai trouvée est cette question , mais la structure de répertoires ne semble pas correspondre pour mon système d'exploitation (Ubuntu 12.04).
Je suis assez déconcerté par le fait qu'il ne semble pas y avoir de guide clair pour décrire en détail ce processus pour quelque chose qui semble être si courant. Pardonnez-moi si cela existe ... Si oui, veuillez me diriger dans la bonne direction.
la source
Réponses:
Merci pour les réponses précédentes, ils m’avaient pris le plus gros du chemin, mais pour que les choses fonctionnent, je devais combiner les instructions de plusieurs endroits, alors j’ai pensé écrire un ensemble complet de commandes.
Pour info, je suis sous Ubuntu 14.04, Apache 2.4, et modphp fonctionnait par défaut, les instructions précédentes excluaient également la nécessité de désactiver modphp.
J'ai également trouvé que http://blog.starcklin.com/2013/08/install-mod-fastcgi-and-php5-fpm-on-ubuntu/ était très informatif et simple.
Il suffit d’exécuter les commandes suivantes dans un terminal les unes après les autres.
Commencez par installer les paquets nécessaires (je laisse de côté php5 car cela suppose qu’il est déjà installé, rajoutez-le pour une première installation). Notez également qu'à partir d'Apache 2.4, vous pouvez utiliser event-mpm à la place de worker, voir http://www.vps.net/blog/2013/04/08/apache-mpms-prefork-worker-and-event/ . Mon exemple montre worker, mais remplacez simplement le mot worker par event si vous préférez utiliser celui-ci.
Activez maintenant les mods dont vous avez besoin et désactivez ceux dont vous n'avez pas besoin.
Créez le fichier php5.fcgi et donnez au serveur Web l'autorisation de l'utiliser.
Créer une configuration globale pour php5-fpm
collez ce qui suit (nous utiliserons un socket au lieu d'une adresse IP)
Activer la conf php5-fpm
Redémarrer Apache et FPM
Selon d’autres instructions, collez ce qui suit dans un nouveau fichier php navigable sur votre serveur Web.
Ouvrez le fichier que vous venez de modifier dans un navigateur Web. Si vous voyez "FPM / FastCGI" à côté de Server API, vous fournissez maintenant PHP avec FastCGI!
la source
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:
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)
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
À ce stade, vous risquez d'obtenir une erreur lors de l'installation de 'libapache2-mod-fastcgi':
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:
A quoi j'ai ajouté les lignes suivantes:
precise
dans ce cas, fait référence à ma version d’Ubuntu " Precise Pangolin ".Alors maintenant, enregistrez ces modifications et revenez au terminal:
et encore:
qui va (devrait) maintenant fonctionner.
Activez maintenant ces modules Apache:
redémarrer apache
Étape 3: configuration Apache
Pour que Apache fonctionne avec PHP-FPM, nous avons besoin de la configuration suivante:
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:
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:
Maintenant, créez le fichier PHP suivant dans la racine du document
/var/www
:Ajouter:
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.
la source
Require all granted
chose n'est requise que depuis Apache 2.4. Si je le mets dans le fichier de configuration avec Apache 2.2, cela échoue.Dans Ubuntu 14.04, après avoir suivi les étapes de la réponse acceptée, éditez le fichier /etc/apache2/conf-available/php5-fpm.conf.
Puis exécuter
la source
Si quelqu'un le fait sur Ubuntu 16.04 et passe de PHP 7 à PHP 5.6 (Ondrej), vous devez remplacer certaines lignes (sur la base de la réponse de JDawgg):
sudo apt-get installez libapache2-mod-fastcgi php5-fpm sur:
sudo a2dismod php5 mpm_prefork à:
sudo nano /etc/apache2/conf-available/php5-fpm.conf à:
Le processus d'installation de php5.6-fpm a déjà créé le fichier, il n'est donc pas nécessaire de le créer. Cependant, j'ai supprimé tout le texte existant sur ce fichier car il était destiné à mod_php5.
J'ai changé le chemin d'accès de /var/run/php5-fpm.sock à /var/run/php/php5.6-fpm.sock car le fichier s'y trouvait.
sudo a2enconf php5-fpm à:
sudo service apache2 redémarrer && sudo service php5-fpm redémarrer à:
J'espère que cela aide d'autres débutants comme moi :)
la source