# PHP-FPM und mod_fastcgi



## ramsys (24. Juni 2013)

Auf einem Server soll ausschließlich PHP-FPM eingesetzt werden. Dafür ist das Apache Modul mod_fastcgi statt mod-fcgid notwendig. Die Installation ist daher wie folgt geändert, der Rest entspricht The Perfect Server - Debian Wheezy (Apache2, BIND, Dovecot, ISPConfig 3) | HowtoForge - Linux Howtos and Tutorials:


```
apache2 apache2.2-common apache2-doc apache2-mpm-worker apache2-utils libexpat1 ssl-cert php5 php5-common php5-gd php5-imap libapache2-mod-fastcgi php5-fpm apache2-suexec php-pear php-auth php5-curl
```
Damit funktioniert dann aber ISPConfig nicht mehr (403 - Forbidden). Welche Einstellung wäre hierfür richtig?


----------



## Till (24. Juni 2013)

ISPConfig benötigt mod-fcgid, da es nicht per FPM läuft. Du musst also wie im perfect setup beschrieben beide mod's installieren.


----------



## ramsys (24. Juni 2013)

Das ging ja schnell 



Zitat von Till:


> ISPConfig benötigt mod-fcgid, da es nicht per FPM läuft. Du musst also wie im perfect setup beschrieben beide mod's installieren.


Das hatte ich auch schon probiert, ebenfalls ohne Erfolg:


```
apache2 apache2.2-common apache2-doc apache2-mpm-worker apache2-utils libexpat1 ssl-cert php5 php5-common php5-gd php5-imap php5-cgi libapache2-mod-fastcgi libapache2-mod-fcgid php5-fpm apache2-suexec php-pear php-auth php5-curl
```


----------



## Till (24. Juni 2013)

Hast Du denn auch ein fastcgi PHP installiert?


----------



## ramsys (24. Juni 2013)

Zitat von Till:


> Hast Du denn auch ein fastcgi PHP installiert?


Siehe Code vorheriger Beitrag bzw. wie im Howto beschrieben:


```
apt-get install libapache2-mod-fastcgi php5-fpm

a2enmod actions fastcgi alias
```


----------



## Till (24. Juni 2013)

Und was genau steht im apache error.log bzgl. des 403 Fehlers?


----------



## ramsys (25. Juni 2013)

Zitat von Till:


> Und was genau steht im apache error.log bzgl. des 403 Fehlers?


Ich habe gerade einen komplett neuen Server nach dem Howto installiert (Wheezy). Lediglich zusätzlich zu _libapache2-mod-fcgid_ und _php5-cgi_ wie empfohlen noch _libapache2-mod-fastcgi_ und _php5-fpm_. Außerdem wurden _libapache2-mod-php5_ und _libapache2-mod-suphp_ entfernt sowie _apache2-mpm-prefork_ gegen _apache2-mpm-worker_ ausgetauscht.

Im error.log steht:


```
[Tue Jun 25 12:25:09 2013] [error] [client xxx.xxx.xxx.xxx] client denied by server configuration: /var/www/, referer: http://sub.domain.tld:8080/
```


----------



## ramsys (25. Juni 2013)

Ansonsten bei der Installation keinerlei Fehler. Nur ein Abhängigkeitsfehler, der mit "_Remove libgd2-noxpm_" übernommen wurde.


----------



## ramsys (25. Juni 2013)

Wenn ich nun _libapache2-mod-php5_ und _libapache2-mod-suphp_ wieder hinzu nehme und den Abhängigkeitsfehler auflöse und _apache2-mpm-worker_ entferne und dafür _apache2-mpm-prefork_ installiere, funktioniert der Login in ISPConfig 3 wie erwartet ohne Probleme.

PS Noch ergänzend zum vorherigen Test: Beim Aufruf von ISPConfig ohne SSL kommt "_Bad Request_" mit dem korrekten Link zur HTTPS URL. Dieser führt dann zum 403 Fehler.


----------



## ramsys (26. Juni 2013)

Hat noch jemand einen Hinweis, wie die korrekte Installation von PHP-FPM mit mod_fastcgi nun aussieht?


----------



## innocenti_jr (28. Juni 2013)

Zitat von Till:


> ISPConfig benötigt mod-fcgid, da es nicht per FPM läuft.


Darf ich fragen, warum das so ist?

Grüße - Oliver

PS: Vielen Dank für diese tolle Software!


----------



## Till (28. Juni 2013)

> Darf ich fragen, warum das so ist?


Weil es für fastcgi programmiert wurde und fpm nicht implementiert ist. Die Systemvorussetzungen für ISPConfig sind in den perfect setup guides festgelegt, d.h alle dort gelisteten Pakete werden benötigt. Du kannst natürlich nach belieben Pakete weglassen, das wird dann aber zu mehr oder weniger Fehlfunktionen führen oder wie in Deinem Fall dass Du das ISPConfig Interface nicht mehr aufrufen kannst.


----------



## ramsys (28. Juni 2013)

Zitat von Till:


> dass Du das ISPConfig Interface nicht mehr aufrufen kannst.


Wie bereits beschrieben, funktioniert der Aufruf von ISPConfig auch dann nicht: "_client denied by server configuration_".

Lediglich mit _libapache2-mod-php5_, was ja gerade nicht installiert werden soll und hier auch nicht als Voraussetzung genannt wurde.


----------



## innocenti_jr (28. Juni 2013)

(Es ist leicht OT, weil es hier eigentlich um den Apachen geht.)
Wenn ich mir
The Perfect Server - Debian Wheezy (nginx, BIND, Dovecot, ISPConfig 3) | HowtoForge - Linux Howtos and Tutorials
durchlese, sollte doch die Kombi aus nginx und php-fpm mit ISPConfig funktionieren. Habe ich Tomaten auf den Augen? 
Und wenn das der Fall ist: Warum sollte es nicht mit Apache klappen?


----------



## Till (28. Juni 2013)

> Lediglich mit libapache2-mod-php5, was ja gerade nicht installiert werden soll und hier auch nicht als Voraussetzung genannt wurde.


Das steht aber im perfect setup als Systemvoarussetzung drin.

Wie ich oben geschrieben habe, wenn Du Pakete weg lässt die im perfect setup stehen dann kann es sein dass etwas nicht geht. Ich installiere Server nach perfect setup täglich und sie funktionieren immer, d.H. in den perfect setups die auf ispconfig.org unter Dokumentation gelistet sind fehlt nichts. Du kannst Dein setup natürlich individuell anpassen und Pakete weglassem, dann musst Du aber unter Umständen apache, php und andere Config Dateien manuell erstellen oder ändern.

Schau halt mal in das apache error.log was dort genau an Fehlern drin steht.


----------



## Till (28. Juni 2013)

Zitat von innocenti_jr:


> (Es ist leicht OT, weil es hier eigentlich um den Apachen geht.)
> Wenn ich mir
> The Perfect Server - Debian Wheezy (nginx, BIND, Dovecot, ISPConfig 3) | HowtoForge - Linux Howtos and Tutorials
> durchlese, sollte doch die Kombi aus nginx und php-fpm mit ISPConfig funktionieren. Habe ich Tomaten auf den Augen?
> Und wenn das der Fall ist: Warum sollte es nicht mit Apache klappen?


Das ist was anderes, ich habe mich auf apache bezogen da es in dem Thread darum geht. Daher bitte nicht andere Themen in laufende Threads posten!



> Warum sollte es nicht mit Apache klappen?


Weil es ein ganz anderes setup ist. nginx ist kein 1zu1 Ersatz für apache, schau Dir mal die config Syntax, vorhandene Module etc. an, dann siehst Du dass Du nicht einfach eine apache Config unter nginx einsetzen kannst.


----------



## ramsys (28. Juni 2013)

Zitat von Till:


> Ich installiere Server nach perfect setup täglich und sie funktionieren immer, d.H. in den perfect setups die auf ispconfig.org unter Dokumentation gelistet sind fehlt nichts.


Ja, das funktioniert ja auch alles einwandfrei. Im konkreten Fall sollte nur _libapache2-mod-php5_ und _libapache2-mod-suphp_ nicht installiert werden. Weil es zum einen nicht benötigt wird. Vor allem aber, weil sonst zwingend _apache2-mpm-prefork_ voraussetzt wird und die Installation von _apache2-mpm-worker_ damit nicht möglich ist!



Zitat von Till:


> ISPConfig benötigt mod-fcgid, da es nicht per FPM läuft. Du musst also wie im perfect setup beschrieben beide mod's installieren.


Wenn bereits mod-fastcgi und mod-fcgid installiert sind: Warum benötigt dann aber ISPConfig noch zusätzlich unbedingt _libapache2-mod-php5_ 

Kann man das eventuell durch eine manuelle Konfiguration ändern?

Wie kann _apache2-mpm-worker_ installiert werden?



Zitat von Till:


> Schau halt mal in das apache error.log was dort genau an Fehlern drin steht.


Hatte ich bereits in #7 und #13 gepostet. Dort steht lediglich "_client denied by server configuration_":


```
[Tue Jun 25 12:25:09 2013] [error] [client xxx.xxx.xxx.xxx] client denied by server configuration: /var/www/, referer: http://sub.domain.tld:8080/
```


----------



## Till (28. Juni 2013)

> Wenn bereits mod-fastcgi und mod-fcgid installiert sind: Warum benötigt dann aber ISPConfig noch zusätzlich unbedingt libapache2-mod-php5


Ich kann Dir nur sagen dass das "Gesamtpaket" funktioniert wie es im perfect setup steht, welche Abhängigkeiten einzelne Module oder andere apache mpm's auf das Gesamtsystem haben müsste man im Einzelfall austesetn und ggf. eine separate Konfiguration dafür entwickeln.



> Kann man das eventuell durch eine manuelle Konfiguration ändern?


Das geht sicherlich, das ispconfig Interface ist im weitesten Sinne ja auch nur eine Webseite, wenn es auch ein paar zusätzliche Sicherheitsanforderungen hat.



> Wie kann apache2-mpm-worker installiert werden?


Ich habe ISPConfig noch nicht mit mpm_worker getestet, in den perfect setups nehmen wir ja prefork. Vielleicht funktioniert worker nicht richtig mit suexec und daher erhältst Du einen forbidden Fehler oder mod_fcgi oder fasttcgi ist zwar installiert aber nicht aktiviert.


----------



## ramsys (1. Juli 2013)

Zitat von Till:


> Ich habe ISPConfig noch nicht mit mpm_worker getestet, in den perfect setups nehmen wir ja prefork. Vielleicht funktioniert worker nicht richtig mit suexec und daher erhältst Du einen forbidden Fehler oder mod_fcgi oder fasttcgi ist zwar installiert aber nicht aktiviert.


Ich habe mal verschiedene Konstellationen getestet. Wie es aussieht funktioniert ISPConfig an sich nur exakt mit der Konfiguration wie im Howto beschrieben.

In einer Multiserver-Umgebung scheint aber auch folgendes Setup zu funktionieren:

Server 1: Nur Control-Panel

Installation wie im Howto beschrieben, jedoch ohne mod-suphp.

Server 2: Nur Webserver

Installation wie im Howto beschrieben, jedoch ohne mod-php5 und ohne mod-suphp. Statt mod-fcgid/php5-cgi dafür mod-fastcgi/php5-fpm und mpm-prefork gegen mpm-worker ausgetauscht.

Spricht etwas bisher nicht Bedachtes dagegen? Gibt es eine bessere Alternative?


----------

