Update auf 3.0.5.4p1 und PHP-FPM

Dieses Thema im Forum "Installation und Konfiguration" wurde erstellt von ramsys, 8. Juli 2014.

  1. ramsys

    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.
     
  2. Till

    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.
     
  3. ramsys

    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.
     
  4. ramsys

    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.
     
  5. Till

    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.
     
  6. ramsys

    ramsys Member

    Wir nutzen hier - wie oben beschrieben - apache2-mpm-worker (nicht apache2-mpm-prefork). Eventuell gibt es dort einen Zusammenhang?
     
  7. Till

    Till Administrator

  8. Croydon

    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.
     
  9. ramsys

    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.
     
  10. ramsys

    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...
     

Diese Seite empfehlen