Strona 1 z 1

suPHP - Premature end of script headers

: 20 września 2006, 16:36
autor: Verdan
Witam szanownych forumowiczów.

Problem przedstawia się następująco -- otóż postanowiłem zrobić sobie suPHP + php4 + php5.
Skompilowałem suPHP oraz php w obu wersjach.
Moja aktualna konfiguracja wygląda w ten sposób:

* apache:

Kod: Zaznacz cały

LoadModule suphp_module        modules/mod_suphp.so
AddType application/x-httpd-php .php .php4 .php5 .html .phtml
AddType application/x-httpd-php-source .phps
AddHandler x-httpd-php .php .php4 .php5

suPHP_Engine On

<Location />
        suPHP_AddHandler x-httpd-php .php .php4 .php5
</Location>
Natomiast konfiguracja suphp.conf jest standardowa, z drobnymi zmianami, które moim zdaniem nie powinny wpłynąć na działanie modułu oprócz dodanych linijek:

Kod: Zaznacz cały

[handlers]
;Handler for php-scripts
x-httpd-php=php:/usr/local/php_cgi/php4/bin/php
x-httpd-php=php4:/usr/local/php_cgi/php4/bin/php
x-httpd-php=php5:/usr/local/php_cgi/php5/bin/php
suPHP skompilowałem z opcjami:

Kod: Zaznacz cały

 --prefix=/usr  --with-apxs=/usr/local/apache2/bin/apxs
 --with-gnu-ld --with-setid-mode=owner  --with-logfile=/var/log/suphp.log
No i niestety nie chce to działać. Gdy próbuje odpalić jakiś skrypt w error.logu pojawia się:

Kod: Zaznacz cały

[Wed Sep 20 15:55:31 2006] [error] [client ip] Premature end of script headers: phpinfo.php4
Sprawa niby prosta gdyby nie fakt, że na dobrą sprawę binarki php działają jak trzeba:

Kod: Zaznacz cały

bash-2.05# echo "<? phpinfo(); ?>" | /usr/local/php_cgi/php4/bin/php | head
X-Powered-By: PHP/4.4.4
Content-type: text/html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
<html><head>
<style type="text/css">
body {background-color: #ffffff; color: #000000;}
body, td, th, h1, h2 {font-family: sans-serif;}
pre {margin: 0px; font-family: monospace;}
a:link {color: #000099; text-decoration: none; background-color: #ffffff;}
bash-2.05#
dla php4 i

Kod: Zaznacz cały

bash-2.05# echo "<? phpinfo(); ?>" | /usr/local/php_cgi/php5/bin/php | head
X-Powered-By: PHP/5.1.6
Content-type: text/html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
<html><head>
<style type="text/css">
body {background-color: #ffffff; color: #000000;}
body, td, th, h1, h2 {font-family: sans-serif;}
pre {margin: 0px; font-family: monospace;}
a:link {color: #000099; text-decoration: none; background-color: #ffffff;}
bash-2.05#
Nie mam pomysłu o czym mogłem zapomnieć i co źle zrobić że nie chce to ruszyć.
Z góry dziękuję za wszelkie wskazówki :)

Pozdrawiam,
Verdan

: 21 września 2006, 12:44
autor: Verdan
suPHP nie udało mi się jednak zwalczyć, żeby działało jak trzeba.
Za to wynalazłem coś dużo ciekawszego -- mod_ruid.
Chętnym polecam zapoznać się z krótką dokumentacją na stronie projektu:
http://websupport.sk/~stanojr/projects/mod_ruid/ a ja przytoczę tutaj jej część:

Kod: Zaznacz cały

mod_ruid is suexec module for apache 2.0, based on mod_suid2

-it runs only on linux because afaik only linux has implemented posix 1003.1e capabilities
-it has better performance than mod_suid2 because it doesn`t need to kill httpd children
 after one request. it makes use of kernel capabilites and after receiving a new request suids again.

-there are two main operation modes: stat and config
 1. stat
 is default, httpd setuid and setgid to uid and gid of requested filename(script)/directory
 this is good if you use mod_vhost_alias for virtual hosting

 2. config
 like mod_suid2, you must define uid and gid 
W pakietach Debianowych tego nie ma niestety (jeszcze) ale jak będę miał czas to postaram się zrobić paczkę i pouśmiechać do fEnIa.

php4 + php5 zrobiłem odpalając php4 jako moduł apacha a php5 jako cgi. Rozwiązanie nie jest to idealne ale w takim układzie jest możliwość korzystania z opcji php_value (.htaccess) czego nie można zrobić jeśli oba phpy ma się na CGI (co jest jeszcze gorszym rozwiązaniem).

Pozdrawiam,
Verdan

: 23 września 2006, 18:20
autor: Witek Baryluk
O już mi sie ruid podoba :) Walczyłem z suexec, suphp długi czas.

: 02 lipca 2009, 13:03
autor: kkkonrad
Zgadza się mod_ruid na debianie RZ¡DZI ;)

: 02 lipca 2009, 13:56
autor: fnmirk
kkkonrad, to tak stary temat, a od tego czau mamy już kolejną wersję stabilną systemu. Dużo się zmieniło.