[HowTo] PHP4/PHP5 als CGI - gepatcht (deutsches HowTo)

  • Thread starter Thread starter server4downs
  • Start date Start date
Danke!
Und wenn's immernoch Fehlermeldungen ausspuckt, dann einfach mal den LogLevel auf error stellen.
Dann hat man auch Ruhe ;)

Cheers
 
Hallo,
ich habe eurem Thread mal passiv gelauscht.
Ich habe das selbe Problem wie so viele hier.
Dem HowTo genau befolgt erhalte ich jedoch eine sehr lustig Fehlermeldung.
Zunächst hatte ich ebenfalls das Problem, dass er den Mediatyp nicht gefunden hat. Dann hatte ich auch einmal, dass ich "Premature end of script headers" erhielt. Jetzt habe ich das ganze nochmal von neu gemacht. Neu kompiliert, neu "make" und neu "make install" jetzt bin ich glaube ich schon etwas weiter.

Früher kam bei
./php -v nur blödsinn mit ellenlangen Fehlermeldungen was nicht alles nicht gefunden werden konnte, aber das sieht jetzt auch sauberer aus:

PHP 5.1.4 (cgi) (built: Aug 15 2006 16:17:08)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies

Meine neue Fehlermeldung ist folgende:
php5
PHP4 geht weiterhin (zur Info um was für ein System es sich handelt):
php4

Die Dateien sind definitiv vorhanden!

In Error_Log wird absolut NICHTS darüber notiert.
Habe extra mal nach einen Restart die Seite aufgerufen, aber nach den Vermerken über den Restart folgt nichts im Errorlog!

Hat vielleicht jemand dazu ne Idee was das jetzt wieder sein könnte?
Ohne Fehlermeldung bin ich etwas aufgeschmissen wo ich denn anfangne könnte.
Vielen Dank für eure Mühen!
 
Last edited by a moderator:
Hallo.
Liegt sicher an suexec.
Lass doch zum Testen einfach mal suexec außen vor, damit kannst du das schonmal ausschließen.

Liebe Grüße aus den Rockies!
 
Da hast du Recht ;) Ohne suexec ist das nicht so sinnvoll ;)
Suexec schreibt seine eigenen Logs:
/var/log/apache(2)/suexec.log oder so...
Gib halt mal
suexec(2) -v
in die Console ein.
Also musst nur noch daran rumschrauben (und damit meine ich suexec neukompilieren ;))
 
auch wenn es heisst das nicht geschlagen wird, werde ich jetzt wohl gesteinigt ^^

also ich wollte es auch mal nach einer anleitung versuchen, aber bei mir Funktioniert nicht einmal configure :-(

mein sys: Suse 10 , apache 2

und das hier ist die fehler meldung sobald ich configure starte ( egal mit welchen zusatz, hier mal ohne alles) der gleiche fehler kommt auch wenn ich meine config aus phpinfo nehme, und auch deine bsp config


configure: error: Cannot find MySQL header files under /usr.
Note that the MySQL client library is not bundled anymore!
h913875:~/php-5.1.4 #

der fehler sagt ja das er keine mysql sachen findet, laut meiner phpinfo sind die sachen hier /var/lib/mysql/ aber dennoch bekomme ich diese fehler meldung..

hier mal meine php info: phpinfo()
 
Last edited by a moderator:
aha, aber wo finde ich das bei mir ?

habe alles durchgeschaut, das einzige wo noch mysql ist, ist hier

/usr/bin

sonst finde ih das nirgens bei mir

Der witz ist ja letztens ging alles ohne probleme, aber da habe ich neuinstallation gewählt, seitdem nur Probs......
 
Last edited by a moderator:
hey,
danke erstmal an server4downs!

Ich will mich als an Suexec wagen um mein PHP5 CGI Problem zu lösen:

Suexec2 -V liefert:
Code:
 -D AP_DOC_ROOT="/srv/www"
 -D AP_GID_MIN=96
 -D AP_HTTPD_USER="wwwrun"
 -D AP_LOG_EXEC="/var/log/apache2/suexec.log"
 -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
 -D AP_UID_MIN=96
 -D AP_USERDIR_SUFFIX="public_html"

Sieht also alles prima aus:
In der suexec2.log steht:
Code:
command not in docroot (/usr/bin/php5/php)

womit die suexec2.log ja recht hat!
ABER: PHP5 wird doch niemals im DocRoot stehen, und PHP4 tut das ja auch nicht, sondern ist soweit ich weiß in /usr/bin
Ich schlussfolger also, dass ich den Pfad "usr/bin/php5" ebenfalls in Safe_Path hinzufügen muss? Anders kann ich es mir nicht so richtig erklären!
Allerdings ist dies ja mein erster Tanz mit der Suexec und lass mich gerne belehren was ich denn bei einer neukompilation umstellen muss!

P.S: Ganz schön streng hier mit der Regel 3! Aber man sollte die schöne deutsche Sprache ja so wahren wie sie ist, die paar mal "Umschalt" drücken, wirst du hinbekommen Deathangel, hm?

Ich wurde auch missioniert! :D
 
Ich war über 3 Stunden lang die sachen am suchen, da ging nichts mehr. :eek:

Aber in Yast, ist MySql - Devil ( wenn ich es Suche) ja installiert, habe ein Bild damit mal angehangen.

Aber dennoch kommt die gleiche Meldung, das es fehlt :-(
 

Attachments

  • yast.jpg
    yast.jpg
    163 KB · Views: 213
Soderle....

Habe es jetzt soweit hin bekommen,

Aber Php4 phpinfo funktioniert, Und für Php5 nicht,Php5 dateien will der bei mir auch runter laden, also habe ich nochmal alles genau durchgelesen, und bei mir ist alles so wie es sein soll.

Im Suexec.log steht bei mir folgendes, wenn ich Php5 dateien öffnen will:

[2006-08-18 14:38:46]: uid: (10001/web1) gid: (10001/10001) cmd: php
[2006-08-18 14:38:46]: command not in docroot (/usr/bin/php5/php)
[2006-08-18 14:38:47]: uid: (10001/web1) gid: (10001/10001) cmd: php
[2006-08-18 14:38:47]: command not in docroot (/usr/bin/php5/php)
[2006-08-18 14:38:47]: uid: (10001/web1) gid: (10001/10001) cmd: php
[2006-08-18 14:38:47]: command not in docroot (/usr/bin/php5/php)

und im Apache log dieses

[Fri Aug 18 17:44:59 2006] [warn] Cannot get media type from 'php5-cgi'
[Fri Aug 18 17:44:59 2006] [error] [client 87.78.226.99] Premature end of script headers: php
[Fri Aug 18 17:53:59 2006] [error] [client 87.78.226.99] script not found or unable to stat: /srv/www/vhosts/death-place.com/cgi-bin/php
Wäre echt nett wenn Ihr mir da ein wenig weiterhelfen könntet.

EDIT: Link zu PHP4INFO , und zur 5er version PHP5 Info

Gruss
Marcus
 
Last edited by a moderator:
Glückwunsch Deathangel,
jetzt bist du exakt so weit wie ich!

Wenn du folgendens in der httpd.conf stehen hast, dann kommt "Premature end of script headers: php"
Code:
<Directory "/usr/bin/php5">
AllowOverride None
Options +ExecCGI +FollowSymLinks
Order allow,deny
Allow from all
</Directory>
ScriptAlias /php5rocks /usr/bin/php5
Action php5-cgi /php5rocks/php
AddType php5-cgi .php5

Und das ist quasi sogar gut, denn dann ist das mit einer Neukompilation der Suexec gelöst, habe genau an diesem Punkt mal die Suexec ausgebaut und php5 hat geklappt! Also wie du in meinem letzten Post siehst, warten wir jetzt auf gute Tipps beim gleichen Problem!

Wage mich nämlich ohne Ahnung nicht an die Suexec! :D

Danke für eure Hilfe bei der Sache!
 
da haben wir ja etwas gemeinsam ^^

Aber der Befehl Suexec2 -V dabei passiert bei mir garnichts, Das ist so als würde ich Ohne etwas einzugeben die Enter taste drücken !. ( habs mal kopiert )
h913875:~ # Suexec2 -V
-bash: Suexec2: command not found
h913875:~ # suexec2 -V
h913875:~ #


Wenn ich das gleiche in die HTTPD.Conf eintrage wie Du habe ich

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

bei mir steht dies drinnen:

<Directory "/usr/bin/php5">
AllowOverride None
Options +ExecCGI +FollowSymLinks
Order allow,deny
Allow from all
</Directory>
ScriptAlias /php5rocks /usr/bin/php5
Action php5-cgi application/php5rocks/php
AddType application/php5-cgi .php5

Aber wie hast Du denn Suexec2 ausgebaut ? ich möchte auch einmal bei mir das php5 info sehen ^^

Ich habe aber auch nach diesem HowTo, was im ersten Thread steht die Suexec sachen neu gemacht, hatte aber auch leider nichts gebracht!.
 
Last edited by a moderator:
Hallo,

ich bin neu hier im Forum und hoffe, dass ich Hilfe zu meinem Problem finden kann.
Ich habe dieses Tutorial hier durchgearbeitet und auch schon in vielen anderen Foren und Google gesucht doch ich finde leider keine Lösung.
Ich habe suexec2 neu kompiliert und habe /usr/bin/php5 zu dem AP_DOC_ROOT hinzugefügt.
In meiner vhost.conf steht:

<Directory "/usr/bin/php5">
AllowOverride None
Options +ExecCGI +FollowSymLinks
Order allow,deny
Allow from all
</Directory>
ScriptAlias /php5-cgi /usr/bin/php5
Action application/php5-cgi /php5-cgi/php
AddType application/php5-cgi .php5


suexec2 -V liefert mir:

suexec2 -V
-D AP_DOC_ROOT="/usr/bin/php5"
-D AP_GID_MIN=100
-D AP_HTTPD_USER="wwwrun"
-D AP_LOG_EXEC="/var/log/apache2/suexec.log"
-D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
-D AP_UID_MIN=100
-D AP_USERDIR_SUFFIX="public_html"

Wenn ich jetzt auf das Script Zugrifen möchte (info.php5) dann kriege ich einen Internal Server Error.
In der suexec.log steht dann:

[2006-08-19 00:04:13]: uid: (10001/max) gid: (10001/10001) cmd: php
[2006-08-19 00:04:13]: target uid/gid (10001/10001) mismatch with directory (0/0) or program (0/0)

Ich verstehe das aber leider nicht, weil das Script dem User max gehört und der Gruppe psaserv

Zu meinem Server:
Suse 9.3 + PLESK 7.5.4

Ich hoffe, dass jmd eine Antwort weiß

Mfg
Leon
 
Last edited by a moderator:
Hallo,

schön, dass so schnell jmd antwortet, (auch wenn es keine Hilfe auf meine Frage ist).

Ich hatte bei suexec2 -V auch keine Ausgabe genau wie du einfach so als hätte ich gar nix eingegeben.

Nachdem ich suexec dann neukompiliert hatte ging es auch mit der -V Ausgabe.

Lg
Leon
 
Wow also ihr habt euch an die suexec neukompilation gewagt!
Ich hätte gerne vorab ein paar Informationen was ich denn da jetzt verändern muss um erfolgreich zu sein! Weil weitergebracht hat euch zweien das ja nicht sonderlich oder?

Hat nicht jemand ahnung davon also das er damit erfolgreich war?
Wäre wunderbar! Probleme wie gehabt, seit meinem letzten Post!
 
Hallo,

also ich würde dir raten dich einfach an die hier im Thread erwähnte Anelitung zu halten.
Ich habe den Pfad zum logfile angepasst, den user und den AP-DOC-ROOT auf /sur/bin/php5 gesetzt.

Du sagtest du hättest es ohne suexec schon zum laufen gebracht, könntest du mir mal schicldern, wie du das gemacht hast?

Das wäre sehr nett.

Mfg
Leon
 
Hey,
die Anleitungen wie ich die Suexec behandeln muss sind doch bislang nicht von Erfolg gekrönt oder? Warum sollte ich mich also danach richten?

Ich hatte wie gesagt ein premature end of script, und habe folgendermaßen die suexec ausgebaut:

Ich habe Suse9.3:
  • aus /etc/sysconfig/apach2 den modulaufruf suexec aus den zu ladenden Modulen entfernt.
  • in der httpd.conf alle (war nur einer) Einträge über einen Suexec Group oder Owner auskommentiert
  • sowie in der confixx_vhost.conf alle Einträge mit Suexec auskommentiert '#'

Danach Apache restart und fertig war das Ding.
PHP5 hat geklappt, es muss also einzig und allein an der Suexec liegen, doch was muss ich dort tun?
 
Back
Top