← Back to team overview

sslug-teknik team mailing list archive

Re: PHP gennem suEXEC på Apache?

 

Morten Egelund Rasmussen wrote:
> 
> Hejsa,
> 
> Jeg har nu fået konfigureret min Apache, så alle CGI-scripts går gennem
> suEXEC, og de enkelte brugere på serveren ikke kan læse spændende ting
> hos naboen herigennem.
> 
> Men-men-men: PHP bliver jo normalt kørt direkte ind i Apache under
> kompileringen (som modul), og suEXEC vil derfor være ligeglad med alle
> PHP-scripts. :-(
> 
> Begynder man så at læse lidt rundt på nettet, finder man ud af at PHP
> godt kan køre i "safe mode", hvilket er helt udenom suEXEC (se
> http://www.php.net/manual/en/features.safe-mode.php). Det ser dog *IKKE*
> ud til at det er vejen frem, da det ændrer en masse ting i PHP. F.eks.
> kræves det at filer som forsøges åbnet via et script, har samme ejer
> (UID) som scriptet selv. (Og vupti: så var min gruppeopsætning væk!)...
> 
> Vejen frem må således være at få PHP til at fungere som CGI-parser (som
> f.eks. Perl). For at få kørt hastigheden op i nærheden af det
> oprindelige kan man evt. (vistnok) gøre dette gennem FastCGI-modulet til
> Apache. --Dokumentationen på dette område er dog ret sparsom! :-(
> 
> Imidlertid er jeg lidt ked af, hvis alle PHP-scripts nu SKAL have en
> "shebang"-linie i toppen og rettighederne sættes til noget med "x"...
> 
> Derfor: Kan man konfigurere Apache til automatisk at finde ud af hvilken
> CGI-parser en fil skal gennem, udelukkende ud fra dens extension? --
> Eller lægger CGI-modellen op til, at CGI-programmerne kører helt
> uafhængigt af Apache, og Apache egentlig kun læser stdout fra disse? (Og
> da CGI-scripts her *er* programmer, skal de have shebang+execute.)
> 
> Det korte af det lange er: Hvordan kalder jeg bedst muligt PHP-scripts
> gennem suEXEC?
> 

Du har ikke brug for suexec Det du har brug for er følgende i
httpd.conf:

<Directory /docroot> 
php_admin_value open_basedir /docroot 
</Directory> 


Det direktiv kan lægges ind i dine virtulles servere. Du kan så
sætte dem i samme gruppe i et fælles directory. Der er så vidt
jeg kan se heller ikke noget i vejen for at samme virtuelle
server har adgang til flere
Directories. 

Du skal også være opmærksom på
at næsten alle PHP.INI opsætningerne også kan laves som Apache
direktiver
og derfor også kan køres under de virtulle servere. Så du kan
godt sætten noge i safe mod uden at gøre det samme ved andre.

Prøve at læse Hele afsnittet om safe mode i PHP-manualen 

I øvrigt forbavser det mig ikke det mindste at det ikke er sat op
på Webhoteller. Det fungere sikkert sådan mange steder at folk
selv stort
set kan give sig selv de rettigheder de nu synes at de skal have. 

-- 
-
Poul-Erik Andreasen
Hvis du mangler nogen til noget eller du kan noget for nogen.
http://linux-freelance.pea.dk


Follow ups

References