suPHP - Premature end of script headers

Konfiguracja serwerów, usług, itp.
Verdan
Posty: 80
Rejestracja: 06 czerwca 2006, 17:49

suPHP - Premature end of script headers

Post 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
Verdan
Posty: 80
Rejestracja: 06 czerwca 2006, 17:49

Post 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
Witek Baryluk
Beginner
Posty: 207
Rejestracja: 26 czerwca 2006, 01:49
Lokalizacja: Kraków za firewallem

Post autor: Witek Baryluk »

O już mi sie ruid podoba :) Walczyłem z suexec, suphp długi czas.
kkkonrad
Posty: 1
Rejestracja: 02 lipca 2009, 13:02

Post autor: kkkonrad »

Zgadza się mod_ruid na debianie RZ¡DZI ;)
fnmirk
Senior Member
Posty: 8321
Rejestracja: 03 grudnia 2007, 06:37

Post autor: fnmirk »

kkkonrad, to tak stary temat, a od tego czau mamy już kolejną wersję stabilną systemu. Dużo się zmieniło.
ODPOWIEDZ