Apache et plusieurs pools PHP-FPM

J'ai deux sites que je cours depuis les vhosts 2.2 d'apache avec PHP-FPM 5.4 sur Ubuntu 12.04. Jusqu'à présent, j'utilise une configuration mod_fastcgi de stock (stock), mais maintenant, je veux split cela en deux pools FPM afin que je puisse utiliser différents parameters PHP pour chacun (par exemple, un est un site dev, de sorte que l'affichage des erreurs est activé ).

J'ai configuré deux pools FPM avec différents noms et locations de socket, selon les docs, désactivé la configuration fastcgi globale, l'ai copié dans mes vhosts et l'ai modifié pour pointer vers les différents pools pour chaque vhost, comme ceci:

<IfModule mod_fastcgi.c> <FilesMatch \.php$> SetHandler php-script </FilesMatch> Action php-script /php5.fcgi virtual Alias /php5.fcgi /var/fastcgi/php5.fcgi FastCGIExternalServer /var/fastcgi/php5.fcgi -socket /var/run/php5-fpm-www.sock <Directory "/var/fastcgi"> Order allow,deny <Files "php5.fcgi"> Order deny,allow Deny from all Allow from env=REDIRECT_STATUS </Files> </Directory> </IfModule> 

Il y a en fait 4 vhosts car il existe des saveurs régulières et SSL de chaque nom d'hôte, et chaque paire pointe sur un pool FPM.

Le problème auquel je suis confronté est que apache lance une erreur en disant:

 FastCgiExternalServer: redefinition of previously defined class "/var/fastcgi/php5.fcgi" 

Comment cela devrait-il être fait?

One Solution collect form web for “Apache et plusieurs pools PHP-FPM”

L'enjeu est que vous devez renommer l'action et l'alias aussi, donc ce ne sont pas des «redéfinitions», donc, pour mon groupe «www», ma configuration hhhhh se présente comme suit:

 <IfModule mod_fastcgi.c> <FilesMatch \.php$> SetHandler php-script </FilesMatch> Action php-script /php5-www.fcgi virtual Alias /php5-www.fcgi /var/fastcgi/php5-www.fcgi FastCGIExternalServer /var/fastcgi/php5-www.fcgi -socket /var/run/php5-fpm-www.sock <Directory "/var/fastcgi"> Order allow,deny <Files "php5-www.fcgi"> Order deny,allow Deny from all Allow from env=REDIRECT_STATUS </Files> </Directory> </IfModule> 

Et pour SSL sur le même groupe:

 <IfModule mod_fastcgi.c> <FilesMatch \.php$> SetHandler php-script </FilesMatch> Action php-script /php5-www-ssl.fcgi virtual Alias /php5-www-ssl.fcgi /var/fastcgi/php5-www-ssl.fcgi FastCGIExternalServer /var/fastcgi/php5-www-ssl.fcgi -socket /var/run/php5-fpm-www.sock <Directory "/var/fastcgi"> Order allow,deny <Files "php5-www-ssl.fcgi"> Order deny,allow Deny from all Allow from env=REDIRECT_STATUS </Files> </Directory> </IfModule> 

Donc, ils utilisent des noms différents, mais en montrant le même socket.

  • Le cache FastCGI est toujours un MISS
  • php error semble occupé (vous devrez peut-être augmenter pm.start_servers, ou pm.min / max_spare_servers)
  • PHP-FPM ne démarre pas automatiquement après le redémarrage
  • Nginx et PHP-FPM: les parameters de requête ne seront pas transmis à PHP
  • nginx / php-fpm "script primaire inconnu" lorsque vous utilisez un path complexe
  • Taille de téléchargement incohérente avec configuration PHP + NGINX
  • Getting recv () a échoué (104: Réinitialisation de la connection par pair)
  • 502 Erreur de la passerelle incorrecte - sortie sur le signal 11
  • Comment couper IOPS php-fpm
  • nginx php-fpm: Autorisation refusée lors de la connection vers l'amont
  • Trouver un goulot d'étranglement Nginx / PHP-FPM qui provoque des erreurs de passer 502 au hasard
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.