# Admin Panel nach Update nicht mehr erreichbar (FastCGI Problem) Internal Server Error



## d.hoffmann (12. Apr. 2013)

Hallo, 

ich habe schon folgende Threads über Google gefunden, diese haben mich leider nicht weiter gebracht: 

ISPConfig no longer runs: 500 Internal Server error & mod_fcgid: error reading data - HowtoForge Forums | HowtoForge - Linux Howtos and Tutorials
http://www.howtoforge.de/forum/installation-und-konfiguration-12/ispconfig-rechte-neu-setzen-5529/

zur Installation habe ich folgendes Tutorial verwendet: 
The Perfect Server - CentOS 6.2 x86_64 With Apache2 [ISPConfig 3] | HowtoForge - Linux Howtos and Tutorials

die Forum Suche konnte leider nichts zu meinem Problem finden, deshalb erstelle ich diesen Thread. Sollte ich dadurch einen Doppelpost verursacht haben bitte ich um Entschuldigung. 

Mein System ist eine Produktiv-VM in einer ESX Umgebung:


```
CentOS release 6.3 (Final)

Linux version 2.6.32-279.14.1.el6.x86_64 (mockbuild@c6b8.bsys.dev.centos.org) (gcc version 4.4.6 20120305 (Red Hat 4.4.6-4) (GCC) ) #1 SMP Tue Nov 6 23:43:09 UTC 2012

PHP 5.3.3 (cli) (built: Jul  3 2012 16:53:21) 
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
    with eAccelerator v0.9.6.1, Copyright (c) 2004-2010 eAccelerator, by eAccelerator
```
Es handelt sich dabei um einen reinen MailServer (keine Kunden Websites). Die Email-Accounts hatte ich mit einem selbst gebastelten Script über die API importiert (altes System war Plesk 8.6). Es lief auch alles ohne Probleme. Vor 3 Tagen habe ich ein Update von 3.0.4.6 auf 3.0.5.2 gemacht. Dazu bin ich wie folgt vorgegangen: 


```
[root@mail ~] tar -zxvf ISPConfig-3.0.5.2.tar.gz
[root@mail ~] cd ispconfig3_install/install
[root@mail ~] php -q update.php
```
rannte auch durch, lediglich mailman hat einen Fehler geschmissen, was aber nicht zu meinem Problem führen sollte. 

Das Admin Panel ist anch dem Update nicht mehr erreichbar (Internal Server Error). Schau ich in das ErrorLogFile von Apache stehen nur folgende Zeilen drin: 

loglevel: warn

```
[Fri Apr 12 14:39:52 2013] [warn] [client xx.xx.xx.xx] (104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server
[Fri Apr 12 14:39:52 2013] [error] [client xx.xx.xx.xx] Premature end of script headers: index.php
```
loglevel: debug

```
[Fri Apr 12 15:28:30 2013] [notice] Apache/2.2.15 (Unix) DAV/2 mod_fcgid/2.3.7 PHP/5.3.3 mod_ruby/1.3.0 Ruby/1.8.7(2011-06-30) mod_ssl/2.2.15 OpenSSL/1.0.0-fips configured -- resuming normal operations
[Fri Apr 12 15:28:36 2013] [info] mod_fcgid: server xx.xx.de:/var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter(13004) started
[Fri Apr 12 15:28:37 2013] [warn] [client xx.xx.xx.xx] (104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server
[Fri Apr 12 15:28:42 2013] [debug] fcgid_pm_main.c(357): mod_fcgid: gracefully terminated 1 processes
[Fri Apr 12 15:28:48 2013] [info] mod_fcgid: process /var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter(13004) exit(communication error), terminated by calling exit(), return code: 0
```
Also dachte ich, dass evtl. etwas mit den Rechten nicht stimmt. 

suexec.log: 

```
[2013-04-12 14:39:52]: uid: (5003/ispconfig) gid: (5004/ispconfig) cmd: .php-fcgi-starter
```
rechte der ispconfig web ordner: 

```
[root@mail install]# id ispconfig
uid=5003(ispconfig) gid=5004(ispconfig) Gruppen=5004(ispconfig)
[root@mail install]# cat /etc/group |grep ispco
ispconfig:x:5004:apache
[root@mail install]# cd /var/www
[root@mail www]# ls -la
insgesamt 36
drwxr-xr-x   9 root      root      4096  8. Apr 10:22 .
drwxr-xr-x. 27 root      root      4096  8. Apr 09:59 ..
drwxr-xr-x   2 ispapps   ispapps   4096  5. Dez 16:28 apps
drwxr-xr-x   2 ispconfig ispconfig 4096 13. Feb 2012  cgi-bin
drwxr-xr-x   3 root      root      4096  5. Dez 13:52 error
drwxr-xr-x  12 ispconfig ispconfig 4096  8. Apr 10:22 html
drwxr-xr-x   3 root      root      4096  5. Dez 13:52 icons
lrwxrwxrwx   1 ispconfig ispconfig   34  5. Dez 16:28 ispconfig -> /usr/local/ispconfig/interface/web
drwxr-xr-x   4 ispconfig ispconfig 4096  5. Dez 16:28 php-fcgi-scripts
drwxr-xr-x   2 webalizer root      4096  1. Apr 03:10 usage
[root@mail www]# ls -la ispconfig/
insgesamt 132
drwxr-x--- 20 ispconfig ispconfig  4096 12. Apr 11:16 .
drwxr-x---  7 ispconfig ispconfig  4096  5. Dez 16:28 ..
drwxr-x---  6 ispconfig ispconfig  4096  8. Apr 10:06 admin
-rwxr-x---  1 ispconfig ispconfig  3146 12. Apr 14:54 capp.php
drwxr-x---  6 ispconfig ispconfig  4096  8. Apr 10:06 client
-rwxr-x---  1 ispconfig ispconfig  2977 12. Apr 14:54 content.php
drwxr-x---  7 ispconfig ispconfig  4096  8. Apr 10:06 dashboard
drwxr-x---  6 ispconfig ispconfig  4096  5. Dez 16:28 designer
drwxr-x---  6 ispconfig ispconfig  4096  8. Apr 10:06 dns
-rwxr-x---  1 ispconfig ispconfig     0 12. Apr 14:54 dummy_login.html
-rwxr-x---  1 ispconfig ispconfig 18478 12. Apr 14:54 favicon.ico
drwxr-x---  6 ispconfig ispconfig  4096  5. Dez 16:28 help
-rwxr-x---  1 ispconfig ispconfig  2736 12. Apr 14:54 index.php
drwxr-x---  3 ispconfig ispconfig  4096  8. Apr 10:06 js
-rwxr-x---  1 ispconfig ispconfig  1650 12. Apr 14:54 keepalive.php
drwxr-x---  4 ispconfig ispconfig  4096  5. Dez 16:28 login
drwxr-x---  6 ispconfig ispconfig  4096  5. Dez 16:28 mail
drwxr-x---  6 ispconfig ispconfig  4096  8. Apr 10:06 mailuser
drwxr-x---  6 ispconfig ispconfig  4096  5. Dez 16:28 monitor
-rwxr-x---  1 ispconfig ispconfig  4244 12. Apr 14:54 nav.php
-rwxr-x---  1 ispconfig ispconfig    21  8. Apr 11:41 phpinfo.php
drwxr-x---  2 ispconfig ispconfig  4096  5. Dez 16:28 remote
-rwxr-x---  1 ispconfig ispconfig    25 12. Apr 14:54 robots.txt
drwxr-x---  7 ispconfig ispconfig  4096  8. Apr 10:06 sites
drwxr-x---  3 ispconfig ispconfig  4096  5. Dez 16:28 strengthmeter
drwxrwx---  2 ispconfig ispconfig  4096  5. Dez 16:28 temp
drwxr-x---  7 ispconfig ispconfig  4096  8. Apr 10:06 themes
drwxr-x---  6 ispconfig ispconfig  4096  8. Apr 10:06 tools
drwxr-x---  6 ispconfig ispconfig  4096  5. Dez 16:28 vm
[root@mail www]# ls -la php-fcgi-scripts/
insgesamt 16
drwxr-xr-x 4 ispconfig ispconfig 4096  5. Dez 16:28 .
drwxr-xr-x 9 root      root      4096  8. Apr 10:22 ..
drwxr-xr-x 2 ispconfig ispconfig 4096  5. Dez 16:28 apps
drwxr-xr-x 2 ispconfig ispconfig 4096  8. Apr 10:53 ispconfig
[root@mail www]# ls -la php-fcgi-scripts/ispconfig/
insgesamt 12
drwxr-xr-x 2 ispconfig ispconfig 4096  8. Apr 10:53 .
drwxr-xr-x 4 ispconfig ispconfig 4096  5. Dez 16:28 ..
-rwxr-xr-x 1 ispconfig ispconfig  195 12. Apr 14:54 .php-fcgi-starter
[root@mail www]#
```
fastcgi-wrapper:

```
root@mail ispconfig]# cat ../../php-fcgi-scripts/ispconfig/.php-fcgi-starter 
#!/bin/sh
PHPRC=/etc/
export PHPRC
export PHP_FCGI_MAX_REQUESTS=5000
export PHP_FCGI_CHILDREN=1
exec /usr/bin/php-cgi -d magic_quotes_gpc=off -d session.save_path=/usr/local/ispconfig/server/temp
```
meine ispconfig.vhost config: 

```
Listen 8080
NameVirtualHost *:8080

<VirtualHost _default_:8080>
  ServerAdmin xxxx@xxxxxx.xx

  <FilesMatch "\.ph(p3?|tml)$">
    SetHandler None
  </FilesMatch>

  <IfModule mod_fcgid.c>
    DocumentRoot /var/www/ispconfig/
    SuexecUserGroup ispconfig ispconfig
    <Directory /var/www/ispconfig/>
      Options Indexes FollowSymLinks MultiViews +ExecCGI
      AllowOverride AuthConfig Indexes Limit Options FileInfo
      AddHandler fcgid-script .php
      FCGIWrapper /var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter .php
      Order allow,deny
      Allow from all
    </Directory>
    IPCCommTimeout  7200
        MaxRequestLen 15728640
  </IfModule>

  <IfModule mpm_itk_module>
    DocumentRoot /usr/local/ispconfig/interface/web/
        AssignUserId ispconfig ispconfig
    AddType application/x-httpd-php .php
    <Directory /usr/local/ispconfig/interface/web>
      php_admin_value open_basedir "/usr/local/ispconfig/interface:/usr/share:/tmp"
      Options FollowSymLinks
      AllowOverride None
      Order allow,deny
      Allow from all
      php_value magic_quotes_gpc        0
    </Directory>
  </IfModule>

  # ErrorLog /var/log/apache2/error.log
  # CustomLog /var/log/apache2/access.log combined
  ServerSignature Off

  <IfModule mod_security2.c>
    SecRuleEngine Off
  </IfModule>

  # SSL Configuration
  SSLEngine On
  SSLCertificateFile /usr/local/ispconfig/interface/ssl/ispserver.crt
  SSLCertificateKeyFile /usr/local/ispconfig/interface/ssl/ispserver.key
  #SSLCACertificateFile /usr/local/ispconfig/interface/ssl/ispserver.bundle

</VirtualHost>

<Directory /var/www/php-cgi-scripts>
    AllowOverride None
    Order Deny,Allow
    Deny from all
</Directory>

<Directory /var/www/php-fcgi-scripts>
    AllowOverride None
    Order Deny,Allow
    Deny from all
</Directory>
```
es funktioniert eben alles, bis auf das Admin Panel. Stelle ich zum Testen wieder auf das 3.0.4.6 Admin Panel ist es sofort wieder erreichbar. Allerdings denke ich, dass es eher nicht so gut ist, das Panel von 3.0.4.6 auf einem 3.0.5.2 System laufen zu lassen. 

Ich weiß nicht ob es jetzt am wrapper oder sogar einer Fehlerhaften mod_fcgid installation liegt. Eine Neuinstallation des FCGI-Moduls hat nichts gebracht. 

Wenn alle Stricke reißen, muss ich wohl erstmal wieder per Backup auf die 3.0.4.6 zurück. 

Bestimmt stehe ich auch einfach nur auf der Leitung und es ist eine Kleinigkeit, aber ich komme einfach nicht drauf!


----------



## d.hoffmann (17. Apr. 2013)

Bis jetzt habe ich folgende Dinge probiert: 

den Fehler der beim update.php script bezüglich mailman geschmissen wird behoben. Wie erwartet lags nicht daran 

Der FastCGI Serverprozess scheint auf jeden Fall gestartet zu werden wenn ich das Admin Panel aufrufe: 


```
[root@mail install]# ps aux |grep php
root     10066 26.9  0.5 368624 20604 ?        S    16:30   0:08 /usr/bin/php -q /usr/local/ispconfig/server/server.php
5003     11474  2.6  0.3 297968 13264 ?        Ss   16:30   0:00 /usr/bin/php-cgi -d magic_quotes_gpc=off -d session.save_path=/usr/local/ispconfig/server/temp
5003     11504  0.0  0.1 297968  5584 ?        S    16:30   0:00 /usr/bin/php-cgi -d magic_quotes_gpc=off -d session.save_path=/usr/local/ispconfig/server/temp
root     11645  0.0  0.0 105308   876 pts/0    S+   16:30   0:00 grep php
```
Nur aus irgendwelchen, für mich noch nicht ersichtlichen Gründen, steigt der FCGI-Server aus. Die oben aufgeführten cgi Prozesse "leben" nicht lange und werden immer wieder aufs neue gestartet, sobald das AdminPanel aufgerufen wird. Das ist denke ich aber so normal. 
Es wird auch folgender Stream zum FCGI-Socket File geöffnet: 


```
[root@mail install]# netstat -ap |grep php
unix  2      [ ACC ]     STREAM     HÃ–RT         132587363 14497/php-cgi       /var/run/mod_fcgid/9809.4
[root@mail install]#
```
Erhöhe ich die PHP_FCGI_CHILDREN=1 auf 8 im wrapper, werden auch schön brav 8 Prozesse gespawnt. Also der Aufruf klappt anscheinend. 

Das mod_fcgid Modul wird ebenfalls schön brav geladen: 


```
[root@mail www]# apachectl -t -D DUMP_MODULES |grep fcgi
 fcgid_module (shared)
Syntax OK
[root@mail www]#
```
wenn ich ans Ende der index.php des AdminPanels ein schlichtes die(""); einbaue, kann ich mich ohne Probleme einloggen. Natürlich wird nach dem Login dann nur noch der Header angezeigt. 


```
.
.
.
if(isset($_SESSION['show_error_msg'])) {
    $app->tpl->setVar('show_error_msg', $_SESSION['show_error_msg']);
    unset($_SESSION['show_error_msg']);
}

$app->tpl_defaults();
$app->tpl->pparse();
die("");
?>
```
Ich arbeite mich mal weiter durch die php-Files und hoffe der Ursache meines Problems auf die Schliche zu kommen.


----------



## d.hoffmann (18. Apr. 2013)

Ich habs mit meiner Amateur-"die();" Methode zumindest soweit geschafft, dass die TopNavigation und der linke Navigationsframe angezeigt wird. Allerdings ist das immer so ne Sache sich durch einen fremden Quellcode zu wurschteln. 

Mir sind Außerdem im syslog noch folgende Zeilen aufgefallen: 


```
Apr 18 13:51:20 mail kernel: php-cgi[2726]: segfault at 400000010 ip 00000000005c4216 sp 00007fff8098ee90 error 4 in php-cgi[400000+2c2000]
Apr 18 13:51:21 mail abrtd: Directory 'ccpp-2013-04-18-13:51:20-2726' creation detected
Apr 18 13:51:21 mail abrt[2736]: Saved core dump of pid 2726 (/usr/bin/php-cgi) to /var/spool/abrt/ccpp-2013-04-18-13:51:20-2726 (42663936 bytes)
Apr 18 13:51:29 mail abrtd: Senden der E-Mail...
Apr 18 13:51:29 mail abrtd: E-Mail wurde gesendet an: root@localhost
Apr 18 13:51:30 mail abrtd: New problem directory /var/spool/abrt/ccpp-2013-04-18-13:51:20-2726, processing
```
die php-cgi executable crashed also tatsächlich und es wird ein coredump geschrieben.

dann wollte ich gleich mal schaun was da so alles an Infos zusammengetragen wurde:


```
[dhoffmann@mail ~] sudo gdb /usr/bin/php-cgi /var/spool/abrt/ccpp-2013-04-18-13:51:20-2726/coredump
```
aber leider fehlten mir so ziemlich alle debuginfo packete 

Also Debug.Repo aktivieren:

```
[dhoffmann@mail ~] sudo vi /etc/yum.repos.d/CentOS-Debuginfo.repo
[debug]
name=CentOS-6 - Debuginfo
baseurl=http://debuginfo.centos.org/6/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-Debug-6
enabled=1 <- aktivieren
```
und anschließend die von gdb gewünschten Pakete installieren, und da hänge ich nun in einer Endlosschleife fest. Installiere ich php-debuginfo-5.3.3-22.el6.x86_64 kollidiert es mit php-extras-debuginfo-5.3.3-1.el6.x86_64 und anders herum. natürlich braucht gdb aber beide pakete -.-


```
Running Transaction Test


Transaction Check Error:
  file /usr/lib/debug/usr/lib64/php/modules/tidy.so.debug from install of php-debuginfo-5.3.3-22.el6.x86_64 conflicts with file from package php-extras-debuginfo-5.3.3-1.el6.x86_64
  file /usr/src/debug/php-5.3.3/ext/tidy/tidy.c from install of php-debuginfo-5.3.3-22.el6.x86_64 conflicts with file from package php-extras-debuginfo-5.3.3-1.el6.x86_64

Error Summary
-------------
```
gdb konnte zwar nicht alle Symbole auflösen, aber hat am Ende noch folgende Info ausgespuckt: 


```
Core was generated by `/usr/bin/php-cgi -d magic_quotes_gpc=off -d session.save_path=/usr/local/ispcon'.
Program terminated with signal 11, Segmentation fault.
#0  zval_mark_grey (pz=<value optimized out>) at /usr/src/debug/php-5.3.3/Zend/zend_gc.c:372
372				pz = *(zval**)p->pData;
```
Ich hab bereits, über die vhost-config das Zend-Module deaktiviert, brachte aber keinen Erfolg. 

Ich bin erstmal zurück auf Version 3.0.4.6, da das AdminPanel dringend zur Mailbox-Verwaltung gebraucht wird.


----------

