Jump to content
Froxlor Forum
  • 0

500 Internal Server Error PHP+mod_fcgid


pr0j3ctx

Question

Hallo zusammen.

 

Ich habe seit einigen Tagen einen neuen vServer mit Froxlor aufgesetzt und werde nun nach und nach meine Seiten von syscp r?berholen. Dabei habe ich aber noch ein Problem. Ich ben?tige noch PHP4 zus?tzlich.

 

Ich habe nach der Anleitung im Wiki. mod_fcgid und suexec erfolgreich eingerichtet. Bisher lief auch alles einwandfrei.

 

Dann bin ich hingegangen und habe auf meinem Debian php4-cgi installiert. Klappt auch soweit ohne Probleme.

 

Dann bin ich an die Konfiguration gegangen. Zu erst habe ich in Froxlor bei PHP Konfigurarion eine neue angelegt mit folgenden Einstellungen:

Kurzbeschreibung: PHP4
PHP Binary: /usr/bin/php4-cgi
Dateiendungen: php

Den Rest habe ich leergelassen und bei php.ini folgendes:

short_open_tag = On
asp_tags = Off
precision = 14
output_buffering = 4096
allow_call_time_pass_reference = Off
safe_mode = On
safe_mode_gid = Off
safe_mode_include_dir = "/usr/share/php/:/usr/share/php4/"
safe_mode_allowed_env_vars = PHP_
safe_mode_protected_env_vars = LD_LIBRARY_PATH
open_basedir = "/var/customers/webs/web2/:/var/customers/tmp/web2/:/usr/share/php4/:/tmp/"
disable_functions = exec,passthru,shell_exec,system,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate
disable_classes =
expose_php = Off
max_execution_time = 30
max_input_time = 60
memory_limit = 16M
post_max_size = 16M
error_reporting = E_ALL & ~E_NOTICE
display_errors = On
display_startup_errors = Off
log_errors = On
log_errors_max_len = 1024
ignore_repeated_errors = Off
ignore_repeated_source = Off
report_memleaks = On
track_errors = Off
html_errors = Off
variables_order = "GPCS"
register_globals = Off
register_argc_argv = Off
gpc_order = "GPC"
magic_quotes_gpc = Off
magic_quotes_runtime = Off
magic_quotes_sybase = Off
include_path = ".:/usr/share/php/:/usr/share/php4/"
enable_dl = Off
file_uploads = On
upload_tmp_dir = "/var/customers/tmp/web2/"
upload_max_filesize = 32M
allow_url_fopen = Off
sendmail_path = "/usr/sbin/sendmail -t -f xxx@t-online.de"
session.save_handler = files
session.save_path = "/var/customers/tmp/web2/"
session.use_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 1000
session.gc_maxlifetime = 1440
session.bug_compat_42 = 0
session.bug_compat_warn = 1
session.referer_check =
session.entropy_length = 16
session.entropy_file = /dev/urandom
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
suhosin.simulation = Off
suhosin.mail.protect = 1
cgi.fix_pathinfo = 1

 

Im Anschluss daran habe ich die betroffene Domain auf PHP4 umgestellt in Froxlor.

 

Nach kurzem warten und aufrufen einer phpinfo.php erhalte ich folgende Logs:

/var/customers/logs/web2-error.log:

[Wed Jun 29 07:54:37 2011] [warn] [client 153.xxx.xxx.14] (104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server
[Wed Jun 29 07:54:37 2011] [error] [client 153.xxx.xxx.14] Premature end of script headers: phpinfo.php
[Wed Jun 29 07:54:37 2011] [warn] [client 153.xxx.xxx.14] (104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server
[Wed Jun 29 07:54:37 2011] [error] [client 153.xxx.xxx.14] Premature end of script headers: phpinfo.php
[Wed Jun 29 07:54:38 2011] [warn] [client 153.xxx.xxx.14] (104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server
[Wed Jun 29 07:54:38 2011] [error] [client 153.xxx.xxx.14] Premature end of script headers: phpinfo.php

 

/var/log/apache2/suexec.log:

[2011-06-29 07:54:37]: uid: (10001/web2) gid: (10001/web2) cmd: php-fcgi-starter
[2011-06-29 07:54:37]: uid: (10001/web2) gid: (10001/web2) cmd: php-fcgi-starter
[2011-06-29 07:54:38]: uid: (10001/web2) gid: (10001/web2) cmd: php-fcgi-starter

 

/var/log/apache2/error.log:

PHP_FCGI_CHILDREN is not valid
PHP_FCGI_CHILDREN is not valid
PHP_FCGI_CHILDREN is not valid

 

/var/customers/php-fcgi-scripts/web2/web2.s5.host.de/php-fcgi-starter:

PHPRC='/var/customers/php-fcgi-scripts/web2/web2.s5.host.de/'
export PHPRC
PHP_FCGI_CHILDREN=0
export PHP_FCGI_CHILDREN
PHP_FCGI_MAX_REQUESTS=250
export PHP_FCGI_MAX_REQUESTS
exec /usr/bin/php4-cgi -c '/var/customers/php-fcgi-scripts/web2/web2.s5.host.de/'

 

/etc/apache2/sites-enabled/20_froxlor_normal_vhost_web2.s5.host.de.conf:

<VirtualHost 192.168.6.102:80>
 ServerName web2.s5.host.de
 ServerAlias *.web2.s5.host.de
 ServerAdmin xxx@t-online.de
 DocumentRoot "/var/customers/webs/web2/"
 SuexecUserGroup "web2" "web2"
 <Directory "/var/customers/webs/web2/">
   <FilesMatch "\.(php)$">
     SetHandler fcgid-script
     FCGIWrapper /var/customers/php-fcgi-scripts/web2/web2.s5.host.de/php-fcgi-starter .php
     Options +ExecCGI
     Order allow,deny
     allow from all
   </FilesMatch>
 </Directory>
 ErrorLog "/var/customers/logs/web2-error.log"
 CustomLog "/var/customers/logs/web2-access.log" combined
</VirtualHost>

 

Ich bin derzeit ratlos und weiss nicht woran es liegt. Alle anderen Seiten laufen einwandfrei weiter. Halt nur die mit der php4 Konfiguration nicht mehr.

 

Habt ihr hier vielleicht einen Rat f?r mich?

 

Edit:

Wenn ich diesen Aufruf starte: /usr/bin/php4-cgi -c /var/customers/php-fcgi-scripts/web2/web2.s5.host.de/php.ini /var/customers/webs/web2/phpinfo.php wird mir HTML Code ausgegeben, was daf?r spricht das php4 grunds?tzlich funktioniert. Es scheitert wohl irgendwo am Apache2, suexec bzw mod_fcgid.

 

Sch?ne Gr??e

pr0

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

Im Anschluss daran habe ich die betroffene Domain auf PHP4 umgestellt in Froxlor.

Ich w?sste nicht, dass es so eine Einstellung gibt. Nur 2-3 Pfade in der PHP.ini anpassen reicht NICHT aus. Vorallem wenn du mod_fcgid nutzt, werden in den Starter-Dateien automatisch die Pfade f?r PHP5 gesetzt (was wohl systemstandard sein sollte).

Du m?sstest Froxlor schon entsprechend patchen, um neben PHP5 auch PHP4 nutzen zu k?nnen, da Froxlor (gerade bei mod_fcgid) die Einstellungen automatisch erstellt.

 

Zudem kann ich pers?nlich nur von der Nutzung von PHP4 abraten. Es wird nicht mehr maintained und supported.

Froxlor ist btw. auch nicht mehr PHP4 kompatibel.

 

Der einfachste Weg, ohne Patches und sonstwas ist nat?rlich, wenn du f?r entsprechende Domains einfach manuell vhosts und entsprechende Einstellungen f?r PHP vornimmst und die nicht von Froxlor verwalten l?sst. Ist halt ein bisschen config-fummelei

Link to comment
Share on other sites

Hi.

 

Doch genau so und so einfach gehts. Es gibt nur eine kleinigkeit die noch angepasst werden musste.

Undzwar muss ich bei der zus?tzlichen PHP Konfiguration die ich erstellt habe und angepasst ein Wert bei:

PHP Prozesse f?r diese Domain (leer f?r Standardwert): 

gesetzt werden

 

Ich habe ihn testweise auf 10 gesetzt und l?uft alles.

 

Somit sieht die php-fcgi-starter wie folgt aus

/var/customers/php-fcgi-scripts/web2/web2.s5.host.de/php-fcgi-starter:

PHPRC='/var/customers/php-fcgi-scripts/web2/web2.s5.host.de/'
export PHPRC
PHP_FCGI_CHILDREN=10
export PHP_FCGI_CHILDREN
PHP_FCGI_MAX_REQUESTS=250
export PHP_FCGI_MAX_REQUESTS
exec /usr/bin/php4-cgi -c '/var/customers/php-fcgi-scripts/web2/web2.s5.host.de/'

 

Dennoch Danke f?r die Hilfe und Sch?ne Gr??e

pr0

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...