Der PHP-Fastcgi-Modus funktioniert nicht: Vorzeitiges Ende der Skript-Header

Created:

2016-11-16 13:18:18 UTC

Modified:

2017-08-16 16:28:46 UTC

8

Was this article helpful?


Have more questions?

Anfrage einreichen

Der PHP-Fastcgi-Modus funktioniert nicht: Vorzeitiges Ende der Skript-Header

Applicable to:

  • Plesk 12.5 for Linux
  • Plesk 12.0 for Linux
  • Plesk 11.0 for Linux
  • Plesk 11.5 for Linux

Kennzeichen

  1. Während des Umschaltens des PHP-Modus auf FastCGI funktioniert ein sekundäres PHP nicht:

    # tailf /var/www/vhosts/domain.tld/logs/error_log
    
    (104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server
    Premature end of script headers: index.php
    
  2. Die Apache-Protokolle zeigen einen Arbeitsspeicherfehler:

    less /etc/httpd/logs/error_log
    
    Apache/2.2.15 (Unix) DAV/2 mod_fcgid/2.3.7 mod_python/3.3.1 Python/2.6.6 mod_ssl/2.2.15 OpenSSL/1.0.0-fips SVN/1.6.11 mod_perl/2.0.4 Perl/v5.10.1 configured -- resuming normal operations 
    [Errno 12] Cannot allocate memory 
    
  3. Das Systemprotokoll zeigt suhosin-Warnungen an

    less /var/log/syslog
    

    hosting suhosin[32242]: ALERT - zend_mm_head corrupted at 0x2e02420 (attacker '91.204.25.4', file '/var/www/vhosts/krieger-avocats.lu/httpdocs/index.php')

  4. Das Suexec-Protokoll zeigt einen Fehler:

    # tailf /var/log/httpd/suexec_log
    
    uid: (10033/ftpuser) gid: (504/504) cmd: cgi_wrapper
    unknown error in docroot check (10033)
    

Ursache

1) PHP ist nicht mit FastCGI kompiliert.

2) Es ist nicht genügend Arbeitsspeicher auf dem Server vorhanden.

3) Die php.ini -Datei der Domain wurde angepasst, enthält Schreibfehler oder eine ungültige Konfiguration.

4) Die Berechtigungen für die Datei /etc/passwd sind nicht korrekt.

5) Ein Problem mit der Kompatibilität eines bestimmten PHP-Moduls.

Lösung

1) Stellen Sie sicher, dass PHP mit FastCGI kompiliert ist. Sie können über folgenden Befehl prüfen, ob das FastCGI-Modul aktiviert ist oder nicht.

    # /usr/local/psa/admin/bin/php_handlers_control --list
    id:  display name:  version:    type:                                     cgi-bin:                php.ini:
    fastcgi-5.2.17         5.2.17    5.2.17      cgi  /usr/local/php5.2.17/bin/php-cgi  /usr/local/lib/php.ini

Überprüfen Sie die PHP-Version:

    # /usr/local/php5.2.17-cgi/bin/php-cgi -v
    PHP 5.2.17 (cgi) (built: Mar 27 2014 20:28:44)
    Copyright (c) 1997-2010 The PHP Group
    Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies

Wie Sie hier sehen können, wird 5.2.17 (cgi) angezeigt. Dies bedeutet, dass PHP nur im CGI-Modus arbeitet. Wenn PHP im CGI- und im FastCGI-Modus arbeitet, sieht es wie folgt aus:

    # php-cgi -v
    PHP 5.3.3 (cgi-fcgi) (built: Jul 12 2013 20:34:01)
    Copyright (c) 1997-2010 The PHP Group
    Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
        with the ionCube PHP Loader v4.2.2, Copyright (c) 2002-2012, by ionCube Ltd.

Sollte PHP bei Ihnen nicht mit dem FastCGI-Modus kompiliert sein, kompilieren Sie das benutzerdefinierte PHP bitte mit der Option "--enable-fastcgi" neu.

2) Vergewissern Sie sich, dass genügend Arbeitsspeicher auf dem Server vorhanden ist. Nutzen Sie dazu diesen Befehl:

    free -m

Wenn der Server ein virtueller Container ist, können Sie die Ressourcengrenzen mit diesem Befehl prüfen:

    cat /proc/user_beancounters

3) Die php.ini der Domain könnte manuell angepasst worden sein oder einen Fehler enthalten. Zum Beispiel: Megabyte sind in php.ini als 128MB anstatt 128M festgelegt.

Erstellen Sie ein Backup der php.ini der Original-Domain und konfigurieren Sie eine Domain neu:

 mv  /var/www/vhosts/domain.tld/etc/php.ini /var/www/vhosts/domain.tld/etc/php.ini_orig

 /usr/local/psa/admin/bin/httpdmng --reconfigure-vhost --vhost-name=domain.tld

Verwenden Sie für Plesk nach 11.5 folgenden Befehl:

 /usr/local/psa/admin/bin/httpdmng --reconfigure-domain domain.tld

4) Prüfen Sie die Berechtigungen für die Datei /etc/passwd . Diese müssen in etwa wie folgt aussehen:

    # ls -la /etc/passwd
    -rw-r--r-- 1 root root 7643 Mar  3 12:54 /etc/passwd

Sind die Berechtigungen anders, korrigieren Sie sie bitte gemäß obigem Vorbild.

Haben Sie Fragen? Anfrage einreichen
Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.