[ amater @ 19.08.2003. 19:22 ] @
Instalirao sam apache 2.0.47, i PHP 4.3.2 tako da radi kao CGI tj. kao skripta (#!/put/do/phpa). Podesio sam Apache da vidi user direktorijume (~user) i to radi, kad su u korisničkom direktorijumu html-ovi savršeno radi ali kad treba da pokrene .php (koji je u ~user )neće da radi javlja "Internal Server Error 500 Premature script ...". Napomenuću da .php radi u webroot particiji, pokreće regularno sve registrovane cgi-je i da sam kod korisničkod direktorijuma dodao ExecCGI i php je dodat na spisak cgi-ja.
Izluđuje me.
[ dr ZiDoo @ 19.08.2003. 19:39 ] @
A sto ga fion ne ucits ko modul?
[ amater @ 19.08.2003. 21:57 ] @
zato što mi treba kao skripta, a ne kao modul.
[ tOwk @ 20.08.2003. 00:35 ] @
Pa onda ćeš morati da praviš PHP fajlove npr.
Code:

#!/usr/local/bin/php
<?php
...

?>


Takođe, moraćeš i da uradiš „chmod +x *.php“.
[ B o j a n @ 20.08.2003. 07:57 ] @
Ne zaboravi da ispravno posaljes "Content/type" pre nego sto bilo sta ispisujes sa cgi-em.

PS: Kako ces da resis problem sa sesijama i cgi-em??
[ _owl_ @ 20.08.2003. 10:51 ] @
Mozda bi mogao da pogledas sadrzaj apache error log-a. Nalazi se u direktorijumu (apache_prefix/logs/error.log ili error_log, apache_prefix je po defaultu /usr/local kolko mi se cini)
[ amater @ 20.08.2003. 12:59 ] @
niste od neke pomoći za sada bili.
bilo je nekih problema sa suEXEC, to sam sredio, sada mi ostaje problem kad startujem php iz user direktorijuma javlja grešku "No input file specified.". da napomenem da je počeo da startuje .cgi fajlofe, samo neće php.
sesije pod cgi-jem rade, php automatski šalje contents-type, ako je kompajliran ko CGI a ne CLI.
chmod, je dobro podešen kao i #!/put/do/php-a. što se log fajlova tiče nisu od neke pomoći...

ajmo još malo, saterali smo ga u ćošak!
pozdrav svima koji su učestvovali i hvala unapred!

[ Jbyn4e @ 20.08.2003. 13:48 ] @
Citat:
tOwk:
Pa onda ćeš morati da praviš PHP fajlove npr.
Code:

#!/usr/local/bin/php
<?php
...
?>

Takođe, moraćeš i da uradiš „chmod +x *.php“.

Apsolutno netacno. Mozda to vazi za CLI varijantu (koja koliko sam ukapirao ne radi sa web-om? - oprosticete mi na neznanju, nisam gledao u medjuvremenu sta se desava sa verzijama php-a), ali ne vazi za CGI varijantu.
Igrom slucaja na serveru imam cgi varijantu jer apxs ne radi kako treba i php pri kompajliranju javlja greske. stavio sam phpinfo() u jedan fajl u ~user direktorijum i vidim da sve radi - a nit je +x php fajl, nit' pocinje sa #!/usr...
ceo fajl ima samo: <? phpinfo(); ?> i nista vise (744 tj. rwxr--r-- privilegije).

Najpre ce biti da nesto nije dobro podesio u httpd.conf (ili nedaj boze nije restartovao apache-a u medjuvremenu !!!!).

Proveri jos samo i da li ti se uopste ucitava php.ini fajl kod apache-a, treba da imas nesto ovako kad izvrsis phpinfo():
Configuration File (php.ini) Path /usr/local/lib/php.ini
Ukoliko je samo /usr/local/lib ili nesto drugo - onda ti uopste ni ne ucitava php.ini odatle, a to moze da bude greska u nekim slucajevima.

BTW. File upload, sesije i sve ostalo radi sa CGI varijantom, mozda neke druge stvari ne rade, nisam dosao u situaciju da mi ne radi nesto sto mi je trebalo - sto ne znaci da takvih stvari nema.

P.S. PHP Version 4.3.2, modifikovana verzija Apache/1.3.22, Server API - CGI, Suse 8.1
[ amater @ 20.08.2003. 22:36 ] @
Hvala svima na savetima.

Uspeo sam da prokljuvim zašto se javljala greška "500 Server ERROR Premature ..."

1. Problem je pravio suEXEC pošto je grupa fajla bila različita od grupe direktorijuma.
(pogledajte apačovo uputstvo za suEXEC)

Posle toga je php-skript javljao grešku "No input file specified.":

2. Razlog user_dir u php.ini fajlu je bio različit od apach-ovog i suEXEC-ovog. Kada se ovo sredi
radi bez problema.

Tako da sada php radi kao skript, a ne kao modul ili cgi. Po preporukama, ovo je veoma
siguran način pokretanja php fajlova, pogotovo kada su u u korisničkim direktorijumima.

Kompajliranje php za ovakav rad radi se sa opcijom --enable-discard-path, a treba da se izbaci
opcija --enable-force-cgi-redirect. PHP koji se dobija sa RedHAT9.0 je iskompajliran sa --enable-force-cgi-redirect
tako da ga treba rekompajlirati.
Što se tiče apacha i njega sam rekompajlirao pošto verzija iz RedHAT9.0 nije nije htela da
pokreće .cgi iz korisničkog direktorijuma iako je dodata opcija +EnableCGI u httpd.conf-u

Kako bi apache pokretao PHP skripte, treba dodati "AddHandler cgi-script .cgi .php" u konfiguracioni fajl httpd.conf,
skripte treba da počnu sa #!/put/do/phpa (#!/usr/local/bin/php) i php treba da bude kompajliran kao cgi. (Proverava se sa php -v kao rezultat se dobija "PHP 4.x.y (cgi) ..." u zagradi može da bude (cgi|cli). CLI verzija je namenjena da radi sa šelom, pa tako ne šalje "contents-type" i greške ne formatira u html obliku! skripte trebaju da imaju chmod 711

Sve u svemu mnogo muke oko glupog problema. Šta da radim, svaka škola se plaća. Ali nećemo se predati,
"SVE ŠTO NAS NE UNIŠTI, NAČINI NAS JAČIM"

Još jednom hvala svima na savetima, i pozdrav.