Problem mit Apache2 und FastCGI/FCGID

Apache, Lighttpd, nginx, Cherokee
corni
Posts: 10
Joined: 2007-02-12 15:44

Problem mit Apache2 und FastCGI/FCGID

Post by corni » 2007-02-12 18:00

Hi
Ich habe ein Problem mit Apache2 und fastCGI bzw. Fcgid. Ich will im normalen Server per mod_php PHP haben, und in einem speziellen Directory PHP 5.2.1. Soweit, so gut. PHP überalll fuktioniert, das binary für 5.2.1 ist auch als FastCGI konmpiliert und läuft (phpinfo enthält nur komischerweise nicht da komplette ./configure-Statement). Nur in dem Directory gibts einen 500 bei jeder PHP-Datei und im Error_log

Code: Select all

[Mon Feb 12 13:22:13 2007] [notice] mod_fcgid: call /var/www/html/php5.2.1/phpBB2/index.php with wrapper /usr/local/php5.2.1/bin/php
[Mon Feb 12 13:22:13 2007] [notice] mod_fcgid: server /var/www/html/php5.2.1/phpBB2/index.php(28858) started
[Mon Feb 12 13:22:13 2007] [warn] (104)Connection reset by peer: mod_fcgid: read data from fastcgi server error.
[Mon Feb 12 13:22:13 2007] [error] [client 127.0.0.1] Premature end of script headers: index.php
X-Powered-By: PHP/5.2.1
Content-type: text/html

[Mon Feb 12 13:22:16 2007] [notice] mod_fcgid: process /var/www/html/php5.2.1/phpBB2/index.php(28858) exit(communication error), terminated by calling exit(), return code: 0
Das Logllevel ist natürlich debug ;)
Der Directory-Abschnitt in der httpd.conf

Code: Select all

 
<Directory /var/www/html/php5.2.1>
    AddHandler fcgid-script .php
    FCGIWrapper /usr/local/php5.2.1/bin/php .php
    Options +ExecCGI -MultiViews +Indexes
    Order allow,deny
    AllowOverride All
    Allow from all
    Deny from None
</Directory>
Und die fcgid.conf

Code: Select all

# This is the Apache server configuration file for providing FastCGI support
# through mod_fcgid
#
# Documentation is available at http://fastcgi.coremail.cn/doc.htm

LoadModule fcgid_module modules/mod_fcgid.so

# Use FastCGI to process .fcg .fcgi & .fpl scripts
# Don't do this if mod_fastcgi is present, as it will try to do the same thing
<IfModule !mod_fastcgi.c>
    AddHandler fcgid-script fcg fcgi fpl
</IfModule>

# Sane place to put sockets
SocketPath run/mod_fcgid

MaxRequestsPerProcess 500
# This is the Apache server configuration file for providing FastCGI support
# through mod_fcgid
#
# Documentation is available at http://fastcgi.coremail.cn/doc.htm

LoadModule fcgid_module modules/mod_fcgid.so

# Use FastCGI to process .fcg .fcgi & .fpl scripts
# Don't do this if mod_fastcgi is present, as it will try to do the same thing
<IfModule !mod_fastcgi.c>
    AddHandler fcgid-script fcg fcgi fpl
</IfModule>

# Sane place to put sockets
SocketPath run/mod_fcgid

MaxRequestsPerProcess 500
Dist ist Fedora Core 6: Könnt ihr mir helfen/braucht ihr mehr Input? Ich bin nur ratlos, was da los ist.
MfG
Corni

kase
Posts: 1031
Joined: 2002-10-14 22:56

Re: Problem mit Apache2 und FastCGI/FCGID

Post by kase » 2007-02-12 19:12

Ganz sicher, dass das LogLevel Debug ist?

Das sieht mir sehr nach einem Socket Fehler aus, und die sind bei fcgid im Level Debug drin.

Ansonsten, was sagt die suexec.log?

corni
Posts: 10
Joined: 2007-02-12 15:44

Re: Problem mit Apache2 und FastCGI/FCGID

Post by corni » 2007-02-12 19:45

Hi
in der frisch gecleanten error_log sind Debug-Infos beim starten drin, deshalb, das ist schon Loglevel debug ;) Und eine suexec.log ist bei mir nicht vohanden, zumindest nicht in /var/log oder /var/log/httpd.
MfG
Corni

kase
Posts: 1031
Joined: 2002-10-14 22:56

Re: Problem mit Apache2 und FastCGI/FCGID

Post by kase » 2007-02-12 19:59

Das hat nichts zu sagen, man stellt ja für jeden vHost den LogLevel extra ein.

Es muss also LogLevel debug in deinem vhost drin stehen.

Hast du mod_suexec auch installiert und im vHost SuexecUserGroup gesetzt?

Code: Select all

find / -type f -iname suexec.log
Ansonsten, schau mal ob wenigstens ein FASTCGI Socket existiert, und falls ja, welche Rechte es hat:

Code: Select all

find / -type s -iname "*cgi*"
ls -l GEFUNDENE(S)_CGI_SOCKET(S)

corni
Posts: 10
Joined: 2007-02-12 15:44

Re: Problem mit Apache2 und FastCGI/FCGID

Post by corni » 2007-02-12 21:04

Hi
beim 1. findet er nix, Ausgabe des 2.

Code: Select all

edit: Unnötig, siehe meinen 2. Post
Und ich habe keine vhosts, das ist ne Workstation. Ich kann morgen noch eine von Kommentaren bereinigte httpd.conf posten, aber jetzt gehts nicht mehr ;)
MfG
Corni
edit: 1. als root, 2. kommt morgen als root, oben ist normaler benutzer
Last edited by corni on 2007-02-13 07:04, edited 1 time in total.

corni
Posts: 10
Joined: 2007-02-12 15:44

Re: Problem mit Apache2 und FastCGI/FCGID

Post by corni » 2007-02-13 07:03

Hi
das 2. unter root ergibt auch nix :( Und meine httpd.conf:

Code: Select all


#
ServerRoot "/etc/httpd"


PidFile run/httpd.pid

Timeout 120


KeepAlive Off

MaxKeepAliveRequests 100

KeepAliveTimeout 15


<IfModule prefork.c>
StartServers       8
MinSpareServers    5
MaxSpareServers   20
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  4000
</IfModule>


<IfModule worker.c>
StartServers         2
MaxClients          10
MinSpareThreads     25
MaxSpareThreads     75 
ThreadsPerChild     25
MaxRequestsPerChild  5
</IfModule>


Listen 80


LoadModule auth_basic_module modules/mod_auth_basic.so
#LoadModule auth_digest_module modules/mod_auth_digest.so
#LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_alias_module modules/mod_authn_alias.so
#LoadModule authn_anon_module modules/mod_authn_anon.so
#LoadModule authn_dbm_module modules/mod_authn_dbm.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so
#LoadModule authz_owner_module modules/mod_authz_owner.so
#LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
#LoadModule authz_dbm_module modules/mod_authz_dbm.so
LoadModule authz_default_module modules/mod_authz_default.so
#LoadModule ldap_module modules/mod_ldap.so
#LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
LoadModule include_module modules/mod_include.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule logio_module modules/mod_logio.so
LoadModule env_module modules/mod_env.so
LoadModule ext_filter_module modules/mod_ext_filter.so
LoadModule mime_magic_module modules/mod_mime_magic.so
#LoadModule expires_module modules/mod_expires.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so
LoadModule usertrack_module modules/mod_usertrack.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule mime_module modules/mod_mime.so
#LoadModule dav_module modules/mod_dav.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule info_module modules/mod_info.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule dir_module modules/mod_dir.so
LoadModule actions_module modules/mod_actions.so
#LoadModule speling_module modules/mod_speling.so
#LoadModule userdir_module modules/mod_userdir.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule cache_module modules/mod_cache.so
#LoadModule suexec_module modules/mod_suexec.so
#LoadModule disk_cache_module modules/mod_disk_cache.so
#LoadModule file_cache_module modules/mod_file_cache.so
#LoadModule mem_cache_module modules/mod_mem_cache.so
LoadModule cgi_module modules/mod_cgi.so

Include conf.d/*.conf


ExtendedStatus On


User apache
Group apache


ServerAdmin root@localhost


UseCanonicalName Off


DocumentRoot "/var/www/html"


<Directory />
    AllowOverride All
</Directory>


<Directory "/var/www/html">


    AllowOverride All


    Order allow,deny
    Allow from all

</Directory>


<IfModule mod_userdir.c>
    #

    UserDir disable



</IfModule>


DirectoryIndex index.html index.html.var index.php

AccessFileName .htaccess


<Files ~ "^.ht">
    Order allow,deny
    Deny from all
</Files>


TypesConfig /etc/mime.types


DefaultType text/plain


<IfModule mod_mime_magic.c>
#   MIMEMagicFile /usr/share/magic.mime
    MIMEMagicFile conf/magic
</IfModule>


HostnameLookups Off


#EnableMMAP off


#EnableSendfile off


ErrorLog logs/error_log

LogLevel debug

LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined
LogFormat "%h %l %u %t "%r" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent



#CustomLog logs/access_log common


#CustomLog logs/referer_log referer
#CustomLog logs/agent_log agent


CustomLog logs/access_log combined


ServerSignature On


Alias /icons/ "/var/www/icons/"

<Directory "/var/www/icons">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

#
# WebDAV module configuration section.
# 
<IfModule mod_dav_fs.c>
    # Location of the WebDAV lock database.
    DAVLockDB /var/lib/dav/lockdb
</IfModule>


ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

#
# "/var/www/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
<Directory "/var/www/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>



IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable


AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip

AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*

AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core

AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^


DefaultIcon /icons/unknown.gif

ReadmeName README.html
HeaderName HEADER.html


IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t


DefaultLanguage de

AddLanguage ca .ca
AddLanguage cs .cz .cs
AddLanguage da .dk
AddLanguage de .de
AddLanguage el .el
AddLanguage en .en
AddLanguage eo .eo
AddLanguage es .es
AddLanguage et .et
AddLanguage fr .fr
AddLanguage he .he
AddLanguage hr .hr
AddLanguage it .it
AddLanguage ja .ja
AddLanguage ko .ko
AddLanguage ltz .ltz
AddLanguage nl .nl
AddLanguage nn .nn
AddLanguage no .no
AddLanguage pl .po
AddLanguage pt .pt
AddLanguage pt-BR .pt-br
AddLanguage ru .ru
AddLanguage sv .sv
AddLanguage zh-CN .zh-cn
AddLanguage zh-TW .zh-tw


LanguagePriority de en ca cs da el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW


ForceLanguagePriority Prefer Fallback


AddDefaultCharset UTF-8


AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz


AddHandler type-map var


AddType text/html .shtml
AddOutputFilter INCLUDES .shtml



Alias /error/ "/var/www/error/"

<IfModule mod_negotiation.c>
<IfModule mod_include.c>
    <Directory "/var/www/error">
        AllowOverride None
        Options IncludesNoExec
        AddOutputFilter Includes html
        AddHandler type-map var
        Order allow,deny
        Allow from all
        LanguagePriority en es de fr
        ForceLanguagePriority Prefer Fallback
    </Directory>

#    ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
#    ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
#    ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
#    ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
#    ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
#    ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var
#    ErrorDocument 410 /error/HTTP_GONE.html.var
#    ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var
#    ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var
#    ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
#    ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var
#    ErrorDocument 415 /error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
#    ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var
#    ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var
#    ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var
#    ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var
#    ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var

</IfModule>
</IfModule>


BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4.0b2;" nokeepalive downgrade-1.0 force-response-1.0
BrowserMatch "RealPlayer 4.0" force-response-1.0
BrowserMatch "Java/1.0" force-response-1.0
BrowserMatch "JDK/1.0" force-response-1.0


BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "MS FrontPage" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully
BrowserMatch "^gnome-vfs/1.0" redirect-carefully
BrowserMatch "^XML Spy" redirect-carefully
BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully


<Location /server-status>
    SetHandler server-status
    Order allow,deny
    #Deny from all
    Allow from all
</Location>

<Location /server-info>
    SetHandler server-info
    Order allow,deny
#    Deny from all
    Allow from all
</Location>


 <Directory /var/www/html/php5.2.1>
    AddHandler fcgid-script .php
    FCGIWrapper /usr/local/php5.2.1/bin/php .php
    Options +ExecCGI -MultiViews +Indexes
    Order allow,deny
    AllowOverride All
    Allow from all
    Deny from None
</Directory>




### Section 3: Virtual Hosts
MfG
Corni

Roger Wilco
Administrator
Administrator
Posts: 5924
Joined: 2004-05-23 12:53

Re: Problem mit Apache2 und FastCGI/FCGID

Post by Roger Wilco » 2007-02-13 18:05

Corni wrote:Hi
das 2. unter root ergibt auch nix :(
Und das gibt dir nicht zu denken?

corni
Posts: 10
Joined: 2007-02-12 15:44

Re: Problem mit Apache2 und FastCGI/FCGID

Post by corni » 2007-02-13 18:20

Hi
Ich habe das mod_fcgid mit apt-get installiert, und ging deshalb mal davon aus, das es dann läuft. Was müsste Ich denn machen, das da was ausgespuckt wird (Ich habe ehrlich gesagt, kein Ahnung, wonach da gesucht wird, kase hat nur was von einem Socket gesagt)?
MfG
Corni

kase
Posts: 1031
Joined: 2002-10-14 22:56

Re: Problem mit Apache2 und FastCGI/FCGID

Post by kase » 2007-02-13 18:38

Installier mal suexec

Code: Select all

a2enmod suexec
Dann in bzw vor den Directory

Code: Select all

SuexecUserGroup xxx yyy
Es ist zwar nicht unbedingt so, dass suexec in deinem Fall viel bringen würde, aber vielleicht haben wir so eine genauere Fehlermeldung, falls es Probleme mit dem Starten des php-Bins gibt. (in der suexec.log)

Außerdem bitte die Ausgabe von:

Code: Select all

/usr/local/php5.2.1/bin/php -v
PS: ich bin etwas irritiert, weil du keine vHosts hast. Eine Konfiguration komplett ohne vHosts habe ich noch nicht so oft gesehen. Bisher habe ich immer den Default-vHost bei so etwas benutzt, der ja bei Debian auch standardmäßig dabei ist.

Edit: Wegen dem Socket. Da bei dir kein CGI Socket existiert, startet dein php-Bin vermutlich nicht.

corni
Posts: 10
Joined: 2007-02-12 15:44

Re: Problem mit Apache2 und FastCGI/FCGID

Post by corni » 2007-02-13 18:58

Hi
es gibt auf meinem System weder a2enmod noch ist in den Repos was von suexec oder a2enmod zu sehen. Das letzte sieht normal aus:

Code: Select all

PHP 5.2.1 (cgi) (built: Feb 11 2007 15:22:43)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
[root@localhost corni]#           
Ich glaube, Ich kompiliere es nochmal neu, das ich 100% sicher sein kann, mit --enable-fastcgi kompiliert zu haben...
MfG
Corni

corni
Posts: 10
Joined: 2007-02-12 15:44

Re: Problem mit Apache2 und FastCGI/FCGID

Post by corni » 2007-02-13 19:12

Hi
es aht sich nix geändert, immer noch 500er, Ausgabe von

Code: Select all

/usr/local/php5.2.1/bin/php -v 
Ist immer noch die gleiche...
MfG
Corni

kase
Posts: 1031
Joined: 2002-10-14 22:56

Re: Problem mit Apache2 und FastCGI/FCGID

Post by kase » 2007-02-13 19:38

So muss es aussehen:

Code: Select all

# php5-cgi -v
PHP 5.2.0-8 (cgi-fcgi) (built: Dec 17 2006 19:57:41)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2006 Zend Technologies
Deswegen auch die 500er...

Edit: suexec kannst du jetzt auch getrost draußen lassen, der Fehler ist ja gefunden

corni
Posts: 10
Joined: 2007-02-12 15:44

Re: Problem mit Apache2 und FastCGI/FCGID

Post by corni » 2007-02-13 19:45

Hi
mein ./configure:

Code: Select all

./configure --with-gd --with-mysql --with-mysqli --with-bz2 --with-zlib --disable-debug --disable-cli --without-sqlite --without-safemode --enable-fastcgi --prefix=/usr/local/php5.2.1 --enable-force-cgi-redirect --enable-discard-path
Das sit so aus der bashhistory. ./configure und make jeweils unter dem user corni, make install dann unter root. hast du ne Ahnung, was da falsch dran ist?
MfG
Corni

kase
Posts: 1031
Joined: 2002-10-14 22:56

Re: Problem mit Apache2 und FastCGI/FCGID

Post by kase » 2007-02-13 20:54

Hmm, auf den ersten Blick sieht das ganz ok aus eigentlich, kann jetzt nicht sagen, warum er es nur als CGI baut.

Das --disable-cli kannst du ruhig weglassen, du hast dann sowohl ein CLI als auch ein CGI-FCGI Binary.

Ansonsten schau mal ins Configure Help, vielleicht hat sich ein Parameter geändert. cgi kannst du auch enablen, denn es ist kein Problem mehr heutzutage, die Binarys CGI-FCGI zu bauen, also beides. (siehe mein php -v)

corni
Posts: 10
Joined: 2007-02-12 15:44

Re: Problem mit Apache2 und FastCGI/FCGID

Post by corni » 2007-02-14 15:30

Hi
erst mal vielen Dank für deine Hilfe, es geht jetz mit folgendem ./configure:

Code: Select all

./configure --with-mysql --with-mysqli --with-bz2 --without-sqlite --without-safemode --enable-fastcgi --prefix=/usr/local/php5.2.1 --enable-force-cgi-redirect --enable-discard-path --enable-magic-quotes  
Vorher hat er einfach kein fastcgi mit reingenommen, vielleicht mache ich da mal ein Test, obs die GDlib oder zLib war. Nochmal vielen Dank, ihr, und vor allem kase, habt mir sehr geholfen :)
MfG
Corni