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

  • Thread starter Thread starter server4downs
  • Start date Start date
Hallo RacOr,

möchtest du uns damit sagen, dass du alle Tipps befolgt hast, die dir S4D gegeben hat und es nun klappt?

Oder, dass du sie befolgt hast und es weiterhin nicht klappt.

Oder aber, dass du nur teilweise den Tipps nachgegangen bist?

Du müsstest dich bitte schon ein bisschen präziser ausdrücken und auch einen aktuellen Stand der Dinge berichten, damit wir dir helfen können und überhaupt wissen, bei was.

Lieben Gruß
Free
 
Genau so ist es.
Herzlich willkommen in der Wortsparkasse!

Ich hoffe du erwartest nicht im Ernst, dass wir dir so weiterhelfen!
Du musst uns schon ein paar mehr Informationen geben, was du wo gemacht, kompiliert etc hast.
Deine bisher gepostete Fehlermeldung deutet darauf hin, dass du suexec noch nicht gepatched hast.

Außerdem habe ich dir den Tip doch nicht einfach so zum Spaß gegeben ;)
Wenn ich vom Hilfesuchenden nicht den Eindruck bekomme, dass er auch wirklich gewillt ist das Problem zu lokaliseren, macht mir das Helfen nicht wirklich Spaß.

Das ist nicht böse gemeint. Aber erraten, wie es auf deinem Server aussieht können wir leider nicht.

Was gibt denn ein
Code:
suexec2 -V
aus?
Wenn du das PHP-Binary nicht in dem dort angebenen Verzeichnis hast, ist es ja klar, dass es zu Fehlern kommt.
 
Hallo,


suexec2 -v gibt aus


Code:
~# suexec2 -V
 -D AP_DOC_ROOT="/usr/bin/php5"
 -D AP_GID_MIN=100
 -D AP_HTTPD_USER="www-data"
 -D AP_LOG_EXEC="/usr/local/apache2/logs/suexec_log"
 -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
 -D AP_UID_MIN=100
 -D AP_USERDIR_SUFFIX="public_html"
 
Versuche doch nur mal kurz zum Testen, ob die Geschichte ohne suexec funktioniert. Kommentier dazu die entsprechenden Zeilen in der vhost-Datei aus.
Wenn es dann nicht geht, müsste erst mal woanders gesucht werden.

Man muss das Problem Schritt für Schritt umzingeln ;)
Ich habe bisher schon ein paar dutzend solcher Installationen ohne jegliche Probleme gemacht.

Welches Debian, welchen Apachen nutzt du?
 
Hallo,


Ich nutze Debian 3.1 Sarge


Code:
 Apache/2.0.54 (Debian GNU/Linux) mod_python/3.1.3 Python/2.3.5 PHP/4.3.10-18 mod_ssl/2.0.54 OpenSSL/0.9.7e mod_perl/1.999.21 Perl/v5.8.4


Was genau soll ich auskommentieren?
 
Danke und großes Lob für das Howto,
hat erfolgreich geklappt mit OpenSuse 10.1
PHP Version 4.4.6 & PHP Version 5.2.1
:D
 
Hallo.
Schön zu lesen, dass es alles geklappt hat. Tut auch mal gut!
 
Hi,

da kann ich server4downs nur zustimmen.

Was mich noch interessieren würde, welche HowTos hast du alle benutzt?
(wegen suexec, etc.)

Lieben Gruß
und danke für die Rückmeldung

Free
 
Bei "make install" kommt bei mir folgende Meldung:

Code:
# make install
Installing PHP SAPI module:       cgi
mkdir: â/usr/bin/php5â existiert, ist aber kein Verzeichnis
make: [install-sapi] Fehler 1 (ignoriert)
Installing PHP CGI into: /usr/bin/php5/
cp: Zugriff auf â/usr/bin/php5/#INST@14263#â: Ist kein Verzeichnis
make: *** [install-sapi] Fehler 1

Make hat vorher keine Meldung Fehlermeldung ausgegeben.
 
Hallo,

jetzt werden die Fehlermeldungen sogar dir noch auf deutsch präsentiert und du liest sie trotzdem nicht. Schade :)
mkdir: /usr/bin/php5 existiert, ist aber kein Verzeichnis
Kleine Preisfrage: In welcher Form kann es denn sonst existieren, wenn es nicht ein Verzeichnis ist?
Holla, eine Datei? :)
Zu deutsch: es existiert bereits ein File namens "php5" in /usr/bin.
Lösungsmöglichkeiten:
entweder das File "php5" umbenennen/löschen... oder bei configure das Prefix umbennen in z.B. /usr/bin/php5cgi

Cheers.
 
Hallo,

vielen Dank für das schöne HOWTO! Ich denke, es ist die Beste Lösung für Massenhosting, vor allem wenn man z.B. generell php4 einsetzt und einigen Userwünschen nach php5 nachkommen möchte.

So hab da nur leider ein Problem. Zur Info: Server is ein SuSe 9.3 mit Confixx.

Beim Aufruf einer *.php5 Datei erhalte ich im Browser einen Serverfehler!
Fehlermeldung:
Premature end of script headers: php
Error 500

In der Suexec.log findet sich dazu folgender Eintrag:
Code:
[2007-03-22 18:06:52]: uid: (638/web2) gid: (638/638) cmd: php
[2007-03-22 18:06:52]: command not in docroot: /srv/www/htdocs/web2/html (/srv/www/htdocs/php5/php)

Es ist aber in der docroot, zumindest in der die suexec2 -V ausgibt:
Code:
srv1:~ # suexec2 -V
 -D AP_DOC_ROOT="/srv/www/htdocs"
 -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"
 -D FPSTUBDIR="/usr/local/frontpage/version5.0/apache-fp/_vti_bin"
 -D CONFIXX_HOME_NAME="confixx"

PHP5 wurde in der Datei php5.conf innerhalb von /etc/apache2/conf.d/ so eingebunden:
Code:
<Directory "/srv/www/htdocs/php5">
AllowOverride None
Options +ExecCGI +FollowSymLinks
Order allow,deny
Allow from all
</Directory>
ScriptAlias /php5-cgi /srv/www/htdocs/php5
Action application/php5-cgi /php5-cgi/php
AddType application/php5-cgi .php5

Der passende vhost Eintrag innerhalb der die index.php5 liegt lautet wie folgt:
Code:
<Directory "/srv/www/htdocs/web2/html">
  Options -FollowSymLinks -SymLinksIfOwnerMatch
  DirectoryIndex index.html index.htm index.php index.php3 index.php4 index.php5 index.shtml index.shtm index.sht index.wml
  <IfModule mod_access.c>
    Allow from all
  </IfModule>
  php_admin_flag engine on
</Directory>

<VirtualHost 217.123.132.173:80>
  ServerName domain.de
  ServerAlias www.domain.de
  DocumentRoot /srv/www/htdocs/web2/html
  SuexecUserGroup web2 web2
  php_admin_value open_basedir /srv/www/htdocs/web2/html/:/srv/www/htdocs/web2/phptmp/:/srv/www/htdocs/web2/files/:/srv/www/htdocs/web2/atd/
  php_admin_value file_uploads 1
  php_admin_value upload_tmp_dir /srv/www/htdocs/web2/phptmp/
php_admin_value safe_mode off
</VirtualHost>

Vielleicht sitz ich auch grad aufm Schlauch, aber ich seh das Problem einfach nicht. Wär dankbar wenn mir einer weiterhelfen kann.

Edit: Also Fehler is jetzt soweit relativ klar, das von SWsoft für Confixx geänderte suexec2 macht hier zicken und führt zu diesem Fehler. Einfach selbst nochmal kompilieren behebt das Problem. Allerdings funktionieren dann laut SWsoft .cgi im html Ordner nicht mehr, sondern nur noch in Unterordnern und die einkompilierte Frontpageunterstützung ist auch flöten. Wer nen Lösungsansatz hat, nur raus damit!


Grüße
 
Last edited by a moderator:
hi, ich weiß das thema ist schon etwas älter aber ich hoffe dennoch auf hilfe.

bin seit gestern hier dran und krieg einfach nicht raus was ich falsch gemacht hab. ich hab den gesamten thread gelesen und alle 3 tutorials ganz exakt befolgt.

Mein Server:
Debian Sarge
Confixx 3.2.1 pro
Apache 2.2.3
PHP 4.4.4
PHP 5.2.1


Wie gesagt, ich bin alle tutorials durchgegangen und hab auch suexec neucompiliert. Beim aufruf meiner phpinfo.php5 kommt aber immer ein download.

Fehler in der suexec.log:

[2007-04-13 14:30:47]: uid: (647/web1) gid: (647/647) cmd: php
[2007-04-13 14:30:47]: command not in docroot (/usr/bin/php5/php)

Falls es hier jemanden gibt der mir helfen kann, wär ich wirklich sehr dankbar, weiß nicht mehr weiter. :(

mfg blooddragon
 
Was gibt suexec2 -V aus?
Du hast mit suexec irgendwas falsch gemacht.
 
danke erstmal für die schnelle antwort. hier die ausgabe von suexec2 -v:

suexec2 -V
-D AP_DOC_ROOT="/usr/bin/php5"
-D AP_GID_MIN=100
-D AP_HTTPD_USER="www-data"
-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"
 
Hallo Jungs & Mädels,

also PHP 4 & 5 laufen gemäß der beiden Anleitungen (diese & SUEXEC) sehr schön bei m ir. PHP5 als CGI.

Ich habe jetzt jedoch, das Problem, das normale cgi's nicht mehr ausgeführt werden.

Fehlermeldung: command not in docroot

Ist für mich auch soweit verständlich, da ich ja definiert habe:

/domain.tld/httpdocs/

als DOC ROOT

die CGI's aber in

/domain.tld/cgi-bin/

liegen, wie baue ich mir das jetzt wieder zurecht, das die CGI's funzen ?

Danke Bierteufel !
 
Hallo.

Zuerst einmal an blooddragon:
Sorry, ging irgendwie etwas länger. Habe derzeit sehr wenig Zeit.
Hast du das Problem lösen können?
Nochmals alles auf Richtigkeit überprüft?
Eigentlich sind es ja aus, als ob alles i.O. wäre...
Eventuell hilft dir der Tipp, den ich nun auch für Bierteufel gebe:

@Bierteufel:
Mein HowTo sollte in dieser Richtung korrigiert werden, ich weiß :D Aber wie oben beschrieben hat auch mein Tag leider keine 25h :P
Der "Fehler" in diesem HowTo ist folgender:
Eigentlich sollte das PHP-Binary nicht nach /usr/bin/php5 installiert werden, denn sonst haben wir mit anderen "Programmen" Probleme, die per suexec auf Serverprogramme zugreifen wollen (command not in docroot).
Lösungsweg (habe ich im Thread schon mal gepostet, wenn nicht alles täuscht):
Wenn deine Struktur so aussieht:
/srv/www/htdocs/webx (so siehts ungefähr bei Confixx aus)
/srv/www/vhosts/domain.com (Plesk-Beispiel)
dann "patche" suexec auf /srv/www.
In /srv/www legst du einen neuen Ordner namens php5 an und kopierst dort das Binary rein. Selbstverständlich sollte auf das Binary selber nicht jeder Schreibzugriff haben ;)
Dann noch halt die Pfade vom HowTo nach /srv/www/php5 umbenennen und schon gehts.

Wenn man eine andere Struktur hat, dann muss man ein wenig kombinieren können und schon sollte das auch gehen ;)
 
Back
Top