(Gelößt) Apache2 suPHP

Apache, Lighttpd, nginx, Cherokee
Post Reply
acepilot
Posts: 86
Joined: 2003-07-30 17:42
Contact:
 

(Gelößt) Apache2 suPHP

Post by acepilot »

Guten Abend zusammen,

Habe ein Problem mit suPHP, bekomme das einfach nicht zum laufen und die Suche war bis jetzt auch nicht ergiebig genug.

Habe suPHP nach dem Howto auf http://www.debianhowto.de kompiliert und installiert, alles ohne Fehler.

Danach habe ich in die httpd.conf die folgenden Zeilen hinzugefügt.

Code: Select all

LoadModule suphp_module /usr/lib/apache2/mod_suphp.so
suPHP_Engine on 
AddHandler x-httpd-php .php
Seid dem wird jede PHP Datei als Download angeboten.

Betriebssystem ist Suse 9.l mit Confixx 3 vorinstalliert von 1&1.

Wäre nett wen jemand einen Tipp hätte.

Gruß
Markus
Last edited by acepilot on 2006-02-05 12:35, edited 1 time in total.
Roger Wilco
Posts: 5923
Joined: 2004-05-23 12:53
 

Re: (Gelößt) Apache2 suPHP

Post by Roger Wilco »

Raider heißt jetzt Twix und AddHandler für SuPHP heißt jetzt SuPHP_AddHandler. Lies bitte die Dokumentation von SuPHP.
acepilot
Posts: 86
Joined: 2003-07-30 17:42
Contact:
 

Re: (Gelößt) Apache2 suPHP

Post by acepilot »

Ja sorry hatte ich jetzt fünf minuten später auch gefunden. Allerdings bekomme ich jetzt nen Serverfehler. In der Error Log von Apache steht folgendes.

Code: Select all

[Sat Feb 04 19:07:10 2006] [error] [client 80.145.99.33] No user or group set - set suPHP_UserGroup
Allerdings habe ich keine Ahnung wo ich diesen Schalter setzen soll und wie. In der Dokumentation steht das man um diese benutzen zu können mit einer bestimmten direktive kompiliert haben muß! :(
Roger Wilco
Posts: 5923
Joined: 2004-05-23 12:53
 

Re: (Gelößt) Apache2 suPHP

Post by Roger Wilco »

Acepilot wrote:Allerdings habe ich keine Ahnung wo ich diesen Schalter setzen soll und wie. In der Dokumentation steht das man um diese benutzen zu können mit einer bestimmten direktive kompiliert haben muß! :(
Ja, das hast du aber offensichtlich getan. Jetzt lies bitte nochmal die Doku, die bei SuPHP mitgeliefert wird. Da steht drin, was die Direktive suPHP_UserGroup macht, wohin Sie gehört und warum es ohne nicht funktioniert.
acepilot
Posts: 86
Joined: 2003-07-30 17:42
Contact:
 

Re: (Gelößt) Apache2 suPHP

Post by acepilot »

Das wäre mir neu. Selbst auf der Debian Seite fehlt diese Direktive. Und kompiliert habe ich mit folgendem configure.

code]./configure --with-min-uid=30 --with-min-gid=30 --with-apache-user=wwwrun --with-php=/usr/lib/php --with-logfile=/var/log/apache2/suphp.log --with-apxs=/usr/lib/apxs2
[/code]

Und in der Doku, sowie auf der Seite http://www.suphp.org steht das die angabe nur dann erfolderlich sei wenn man explizit mit dem schalter
--with-setid-mode= kompiliert den man entweder mit force oder paranoid belegen muß. Wobei paranoid nur für Apache2 funktioniert.

Sollte ich immer noch irgendetwas übersehen, wäre ich für etwas mehr als einem Satz dankbar. Sitze jetzt schon 4 Stunden vor diesem Problem und es kann sein das ich den Wald vor lauter Bäumen nicht sehe.

Wenn ich den Schalter benutze und setzte, saget er mir auch nur Internal Server Error

Code: Select all

Could not execute script "/home/htdocs/web2/html/typo3/install/index.php"
und in der SuPHP.log steht dann

Code: Select all

[Sat Feb 04 19:22:24 2006] [info] Executing "/home/htdocs/web2/html/typo3/install/index.php" as UID 639, GID 639
Irgendwie ist das für mich im Moment alles ein rätsel.
Last edited by acepilot on 2006-02-04 19:25, edited 1 time in total.
Roger Wilco
Posts: 5923
Joined: 2004-05-23 12:53
 

Re: (Gelößt) Apache2 suPHP

Post by Roger Wilco »

Die Dokumentation auf suphp.org ist (wie übrigens auch explizit dabeisteht) veraltet. Genau wie das Howto auf debianhowto.de.

Die aktuelle Dokumentation für SuPHP >=0.6.0 wird im Tarball mitgeliefert. Der Default-SetID-Modus ist paranoid, d. h. suPHP_UserGroup und die UID/GID der PHP-Datei müssen genau übereinstimmen. Davon abgesehen kannst du einige Parameter in der /etc/suphp.conf verändern.
acepilot
Posts: 86
Joined: 2003-07-30 17:42
Contact:
 

Re: (Gelößt) Apache2 suPHP

Post by acepilot »

Acepilot wrote:Wenn ich den Schalter benutze und setzte, saget er mir auch nur Internal Server Error

Code: Select all

Could not execute script "/home/htdocs/web2/html/typo3/install/index.php"
und in der SuPHP.log steht dann

Code: Select all

[Sat Feb 04 19:22:24 2006] [info] Executing "/home/htdocs/web2/html/typo3/install/index.php" as UID 639, GID 639
Irgendwie ist das für mich im Moment alles ein rätsel.
Ok ok, den Wink mit dem Zaunpfahl habe ich schon verstanden :lol: , habe ich auch verdient, aber trotzdem läuft es nicht immer nur Internal Server Error 500.

Und die suphp.conf ist folgendermaßen aufgebaut. Ist ja nicht so, als hätte man überhaupt nicht gelesen.

Code: Select all

[global]
;Path to logfile
logfile=/var/log/apache2/suphp_log

;Loglevel
loglevel=info

;User Apache is running as
webserver_user=wwwrun

;Path all scripts have to be in
docroot=/

; Security options
allow_file_group_writeable=false
allow_file_others_writeable=false
allow_directory_group_writeable=false
allow_directory_others_writeable=false

;Check wheter script is within DOCUMENT_ROOT
check_vhost_docroot=false

;Send minor error messages to browser
errors_to_browser=true

;PATH environment variable
env_path=/bin:/usr/bin

;Umask to set, specify in octal notation
umask=0077

; Minimum UID
min_uid=81

; Minimum GID
min_gid=81

[handlers]
;Handler for php-scripts
x-httpd-php=php:/usr/bin/php-cgi

;Handler for CGI-scripts
x-suphp-cgi=execute:!self
Die Log Datei vom Häuptling sagt folgendes.

Code: Select all

[Sat Feb 04 19:47:05 2006] [error] [client 80.145.99.33] Premature end of script headers: index.php
[Sat Feb 04 19:47:07 2006] [error] [client 80.145.99.33] Premature end of script headers: index.php
Daran bin ich gerade am arbeiten, aber das bekomme ich auch noch raus.

Bevor die Frage nach dem Handler kommt, der ist in der Vhost konfiguriert und in einen Location Block eingeschlossen
Roger Wilco
Posts: 5923
Joined: 2004-05-23 12:53
 

Re: (Gelößt) Apache2 suPHP

Post by Roger Wilco »

Acepilot wrote:Und die suphp.conf ist folgendermaßen aufgebaut. Ist ja nicht so, als hätte man überhaupt nicht gelesen.
Aber jetzt postest du endlich mal ein paar Infos. ;)
Acepilot wrote:Die Log Datei vom Häuptling sagt folgendes.

Code: Select all

[Sat Feb 04 19:47:05 2006] [error] [client 80.145.99.33] Premature end of script headers: index.php
Welche Ausgabe bekommst du, wenn du das Skript in der Shell mit "/usr/bin/php-cgi /home/htdocs/web2/html/typo3/install/index.php" aufrufst? Permissions des Skripts und des Verzeichnis, in dem es liegt stimmen auch ganz sicher? (nur beschreibbar für den Besitzer, nicht aber für die Gruppe und andere)
Acepilot wrote:Bevor die Frage nach dem Handler kommt, der ist in der Vhost konfiguriert und in einen Location Block eingeschlossen

Nein, dann käme eine entsprechende Meldung im suphp_log bzw. die PHP-Skripte würden erst gar nicht geparsed werden.
acepilot
Posts: 86
Joined: 2003-07-30 17:42
Contact:
 

Re: (Gelößt) Apache2 suPHP

Post by acepilot »

Habe ne Testdatei geschrieben die einfach per Echo nen text ausgibt. Der wird auch korrekt in der Konsole ausgeben. Kann es an meiner PHP Version liegen, das die den Header (Content Type) nicht richtig oder garnicht mitgibt?.

Als PHP Version ist folgendes installiert.

Code: Select all

server001:/home/htdocs/web2/html # php -v
PHP 4.3.4 (cli) (built: Oct 20 2004 18:54:09)
Copyright (c) 1997-2003 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2003 Zend Technologies
Roger Wilco
Posts: 5923
Joined: 2004-05-23 12:53
 

Re: (Gelößt) Apache2 suPHP

Post by Roger Wilco »

Acepilot wrote:Kann es an meiner PHP Version liegen, das die den Header (Content Type) nicht richtig oder garnicht mitgibt?
Deswegen solltest du dir ja die Ausgabe von php-cgi ansehen, nicht von php. ;)
acepilot
Posts: 86
Joined: 2003-07-30 17:42
Contact:
 

Re: (Gelößt) Apache2 suPHP

Post by acepilot »

Habe ich ja, wie gesagt, gibt genau die Zeile aus die ich in der PHP Datei mit Echo ausgeben wollte. Nicht mehr und nicht weniger.

Code: Select all

server001:/home/htdocs/web2/html # /usr/bin/php /home/htdocs/web2/html/t.php

 Hallo
server001:/home/htdocs/web2/html #
Roger Wilco
Posts: 5923
Joined: 2004-05-23 12:53
 

Re: (Gelößt) Apache2 suPHP

Post by Roger Wilco »

Acepilot wrote:Habe ich ja, wie gesagt, gibt genau die Zeile aus die ich in der PHP Datei mit Echo ausgeben wollte.
Dann jetzt zum 3. Mal: Wie lautet die Ausgabe von php-cgi? Siehe auch Abschnitt [handlers] in deiner suphp.conf.

Code: Select all

server001:/home/htdocs/web2/html # /usr/bin/php-cgi /home/htdocs/web2/html/t.php
Nochmal um sicherzugehen: php != php-cgi
acepilot
Posts: 86
Joined: 2003-07-30 17:42
Contact:
 

Re: (Gelößt) Apache2 suPHP

Post by acepilot »

Ok, habs verstanden. Die Datei gibt es bei mir nicht. Also nehme ich mal an das ich auf meinem System bis jetzt nur PHP als modul am laufen habe. ABer um suPHP zu verwenden brauche ich PHP als CGI, stimmts?

Also bleibt mir nur die PHP Sourcen zu saugen und das zu kompilieren, und dann in der CGI Version. Gibt es dazu ein gutes Howto oder einen Standard configure Befehl der für die 1&1 Standardserver funktioniert?
Roger Wilco
Posts: 5923
Joined: 2004-05-23 12:53
 

Re: (Gelößt) Apache2 suPHP

Post by Roger Wilco »

Acepilot wrote:Ok, habs verstanden. Die Datei gibt es bei mir nicht. Also nehme ich mal an das ich auf meinem System bis jetzt nur PHP als modul am laufen habe. ABer um suPHP zu verwenden brauche ich PHP als CGI, stimmts?
Richtig. Keine Arme, keine Kekse und kein php-cgi, kein SuPHP. ;)
Acepilot wrote:Also bleibt mir nur die PHP Sourcen zu saugen und das zu kompilieren, und dann in der CGI Version. Gibt es dazu ein gutes Howto oder einen Standard configure Befehl der für die 1&1 Standardserver funktioniert?
Solange du nicht --disable-cgi übergibst und kein apxs2 Binary angibst, wird php-cgi automatisch gebaut.
acepilot
Posts: 86
Joined: 2003-07-30 17:42
Contact:
 

Re: (Gelößt) Apache2 suPHP

Post by acepilot »

Erstmal danke für die Hilfe die ich bis jetzt bekommen habe. Hatte gerade versucht PHP zu kompilieren was eigentlich auch laut make geklappt hat, allerdings bekomme chc jetzt eine ziemlich wüßte ausgabe, wenn ich php aufrufe. Werde wohl morgen weiter forschen und nach einer Lösung suchen.

Denn irgendetwas stimmt da gewaltig nicht. Muß mal schauen ob ich Informationen finde die 100% zu meinem System passen.

Aber für die die es interssiert, hier ist die momentane ausgabe nach Aufruf von /usr/bin/php /home/htdocs/web2/html/t.php.

Code: Select all

PHP Warning:  Function registration failed - duplicate name - curl_errno in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - curl_close in Unknown on line 0
PHP Warning:  curl:  Unable to register functions, unable to load in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - ctype_alnum in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - ctype_alpha in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - ctype_cntrl in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - ctype_digit in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - ctype_lower in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - ctype_graph in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - ctype_print in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - ctype_punct in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - ctype_space in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - ctype_upper in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - ctype_xdigit in Unknown on line 0
PHP Warning:  ctype:  Unable to register functions, unable to load in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - jdtogregorian in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - gregoriantojd in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - jdtojulian in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - juliantojd in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - jdtojewish in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - jewishtojd in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - jdtofrench in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - frenchtojd in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - jddayofweek in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - jdmonthname in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - easter_date in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - easter_days in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - unixtojd in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - jdtounix in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - cal_to_jd in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - cal_from_jd in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - cal_days_in_month in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - cal_info in Unknown on line 0
PHP Warning:  calendar:  Unable to register functions, unable to load in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - bzopen in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - bzread in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - bzwrite in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - bzflush in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - bzclose in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - bzerrno in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - bzerrstr in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - bzerror in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - bzcompress in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - bzdecompress in Unknown on line 0
PHP Warning:  bz2:  Unable to register functions, unable to load in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - bcadd in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - bcsub in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - bcmul in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - bcdiv in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - bcmod in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - bcpow in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - bcsqrt in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - bcscale in Unknown on line 0
PHP Warning:  Function registration failed - duplicate name - bccomp in Unknown on line 0
PHP Warning:  bcmath:  Unable to register functions, unable to load in Unknown on line 0
Status: 404
X-Powered-By: PHP/4.4.2
Content-type: text/html; charset=iso-8859-1

No input file specified.
Roger Wilco
Posts: 5923
Joined: 2004-05-23 12:53
 

Re: (Gelößt) Apache2 suPHP

Post by Roger Wilco »

Du hast vermutlich statische und nicht dynamische Erweiterungen für dein PHP erstellt, d. h. die Erweiterungen sind bereits in dem PHP-Binary vorhanden (ähnlich einem Kernel mit Treibern als Modul oder fest einkompiliert). Du mußt deine php.ini daher etwas anpassen und die Extensions dort auskommentieren/löschen. Alternativ kannst du dein PHP mit Shared Extensions neu bauen, siehe http://www.php.net/manual/en/configure.php.
r00ty
Posts: 747
Joined: 2003-03-17 15:32
 

Re: (Gelößt) Apache2 suPHP

Post by r00ty »

warum installierst du dir nicht einfach ein fertiges php-fast-cgi mit yast ?
acepilot
Posts: 86
Joined: 2003-07-30 17:42
Contact:
 

Re: (Gelößt) Apache2 suPHP

Post by acepilot »

r00ty wrote:warum installierst du dir nicht einfach ein fertiges php-fast-cgi mit yast ?
Das war ein guter Tip, habe jetzt soweit auch suPHP am laufen. Das heißt alle normalen Accounts laufen jetzt unter dem dementsprechenden User. Jetzt muß ich nur noch die Vhosts für Confixx ans laufen bekommen, dort bietet er mir die Datei nun zum Download an.

In der httpd.conf ist folgendes eingetragen.

Code: Select all

LoadModule suphp_module /usr/lib/apache2/mod_suphp.so

suPHP_Engine on
php_admin_flag engine off
AddType x-httpd-php .php
AddHandler x-httpd-php .php
In jedem normalen Vhost ist die Location ergänzt worden.

Code: Select all

  <Location />
    SuPHP_AddHandler x-httpd-php
  </Location>
In der confixx_mhost.conf habe ich die beiden Vhosts um folgende Zeilen ergänzd, angelehnt an das Debian Howto.

Code: Select all

  suPHP_Engine off
  RemoveHandler .php
  php_admin_flag engine on
Leider ohne Erfolg, Dateien werden immer nur als Download angeboten.
acepilot
Posts: 86
Joined: 2003-07-30 17:42
Contact:
 

Re: (Gelößt) Apache2 suPHP

Post by acepilot »

Habe jetzt einfach in der VHost für Confixx noch folgendes eingetragen, dann funktioniert es.

Code: Select all

<Location />
   AddHandler application/x-httpd-php .php
</Location>
Post Reply