Update auf 3.0.5.4p1 und PHP-FPM

ramsys

Member
Setup: Multiserver ISPConfig, Debian Wheezy, PHP-FPM

Funktioniert seit längerer Zeit ohne Probleme, auch nach einem Update auf git:3.0.5.4p1. Jetzt hat ein Kunde seine Website geändert und damit den vHost auf die neue Version aktualisiert. Dabei wird

Code:
# Clear PHP settings of this website
<FilesMatch ".+\.ph(p[345]?|t|tml)$">
    SetHandler None
</FilesMatch>

[...]

<FilesMatch "\.php[345]?$">
    SetHandler php5-fcgi
</FilesMatch>

hinzugefügt und

Code:
AddHandler php5-fcgi .php .php3 .php4 .php5

entfernt. Ergebnis: PHP zeigt nur noch den Quelltext. Wenn ich manuell direkt in ISPConfig --> Optionen --> Apache Direktiven "AddHandler php5-fcgi .php .php3 .php4 .php5" hinzufüge, wird die Webseite wieder ordnungsgemäß angezeigt.

Ich habe erstmal den Zugang zu ISPConfig für Kunden gesperrt.
 

Till

Administrator
Wahrscheinlich fehlt ein paket oder es ist ein apache Modul nicht installiert. Führe bitte alle schritte des webserver installationsteils aus dem wheezy perfect server tutorial nochmal auf dem webserver aus.
 

ramsys

Member
Das Multiserver-Setup ist im Prinzip nach den Tutorials eingerichtet. Der Slave (nur Webserver) ist allerdings ausschließlich für PHP-FPM konfiguriert.

Hier die Änderungen zum Original Perfect-Server-Tutorial. Ausgegraut: nicht installiert, Rot: zusätzlich installiert

Code:
apt-get install apache2 apache2.2-common apache2-doc [COLOR="grey"]apache2-mpm-prefork[/COLOR] [COLOR="red"]apache2-mpm-worker[/COLOR] apache2-utils libexpat1 ssl-cert [COLOR="grey"]libapache2-mod-php5[/COLOR] php5 php5-common php5-gd php5-mysql php5-imap [COLOR="grey"]phpmyadmin[/COLOR] php5-cli [COLOR="red"]php5-fpm[/COLOR] [COLOR="grey"]php5-cgi[/COLOR] [COLOR="grey"]libapache2-mod-fcgid[/COLOR] [COLOR="red"]libapache2-mod-fastcgi[/COLOR] apache2-suexec php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick [COLOR="grey"]libapache2-mod-suphp[/COLOR] libruby libapache2-mod-ruby libapache2-mod-python php5-curl php5-intl php5-memcache php5-memcached php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl memcached [COLOR="red"]php-apc[/COLOR]

Code:
a2enmod suexec rewrite ssl actions fastcgi alias include ruby dav_fs dav auth_digest

Und wie erwähnt, funktioniert diese Konfiguration schon seit längerer Zeit ohne Probleme. Bis zum Update auf 3.0.5.4p1 und der damit verbundenen Änderung des Templates.
 

ramsys

Member
Hallo Till,

ich kann nicht erkennen, dass hier noch etwas fehlt. Wenn ich "AddHandler php5-fcgi .php .php3 .php4 .php5" wieder hinzufüge, funktioniert es ja auch wie vor dem Update.
 

Till

Administrator
Hmm, das ist komisch. Ich habe hier Debian perfect server setups (Wheezy und Squeeze) und da funktioniert php-fpm mit der neuen Konfiguration einwandfrei. Die version 3.0.5.4p1 ist ja auch schon vom April und es gab keine Beschwerden bis jetzt bezgl. php-fpm, daher gehe ich davon aus dass es an sich auch so funktioniert, denn in der zeit wurden über 100.000 Kopien von ISPConfig heruntergeladen.

Notfalls musst Du erstmal das vhost template in /usr/local/ispconfig/server/conf anpassen, bis wir die Ursache auf Deinem Server lokalisiert haben.
 

Croydon

Super-Moderator
Zum Eingrenzen des Problems könnte man vielleicht mal testen, in welchem Bereich das Problem auftritt.

Dazu würde ich im ersten Schritt das "SetHandler php5-fcgi" innerhalb des FilesMatch Blocks durch den AddHandler Kram ersetzen und schauen ob es dann funktioniert.

Wenn nicht, würde ich mal schauen, ob es funktioniert, wenn man innerhalb des FilesMatch Bereichs ein "deny from all" macht - also dass der FilesMatch Bereich überhaupt korrekt greift.
 

ramsys

Member
Vielen Dank schon mal :)

Ich werde erstmal das Template (temporär) anpassen, damit die Produktiv-Systeme wenigstens fehlerfrei laufen. Heute Abend schaue ich mir die Konfiguration dann in einer Entwicklungsumgebung etwas genauer an.
 

ramsys

Member
Ich habe jetzt lediglich im Template "vhost.conf.master" SetHandler gegen AddHandler ausgetauscht:

Code:
[...]

<tmpl_if name='php' op='==' value='php-fpm'>
		<IfModule mod_fastcgi.c>
				<Directory {tmpl_var name='document_root'}/cgi-bin>
					<tmpl_if name='apache_version' op='>' value='2.2' format='version'>
					Require all granted
					<tmpl_else>
					Order allow,deny
					Allow from all
					</tmpl_if>
			    </Directory>
				<FilesMatch "\.php[345]?$">
[COLOR="grey"]#					SetHandler php5-fcgi[/COLOR]
					[COLOR="red"]AddHandler php5-fcgi .php .php3 .php4 .php5[/COLOR]
				</FilesMatch>
                Action php5-fcgi /php5-fcgi
				Alias /php5-fcgi {tmpl_var name='document_root'}/cgi-bin/php5-fcgi-{tmpl_var name='ip_address'}-{tmpl_var name='port'}-{tmpl_var name='domain'}
<tmpl_if name='use_tcp'>
                FastCgiExternalServer {tmpl_var name='document_root'}/cgi-bin/php5-fcgi-{tmpl_var name='ip_address'}-{tmpl_var name='port'}-{tmpl_var name='domain'} -idle-timeout 300 -host 127.0.0.1:<tmpl_var name='fpm_port'> -pass-header Authorization
</tmpl_if>
<tmpl_if name='use_socket'>
                FastCgiExternalServer {tmpl_var name='document_root'}/cgi-bin/php5-fcgi-{tmpl_var name='ip_address'}-{tmpl_var name='port'}-{tmpl_var name='domain'} -idle-timeout 300 -socket <tmpl_var name='fpm_socket'> -pass-header Authorization
</tmpl_if>
		</IfModule>
</tmpl_if>

[...]


Und alles funktioniert wieder wie gewohnt...
 

Werbung

Top