Portál AbcLinuxu, 15. července 2025 10:23
LoadModule cgi_module /usr/lib/apache2/modules/mod_cgi.soTen cgi skrip je v adresari /var/www/adresar/soubor.cgi a prava na cteni i spousteni ma pro vsechny uzivatele. Dekuji na odpovedi, jsu na Debianu novy :)
Jsou dvě možnosti: první (méně vhodná) je povolit pro příslušný adresář option ExecCGI
a direktivou
AddHandler cgi-script .cgi
říci serveru, že všechny soubory s určitou příponou jsou CGI skripty. Druhá (vhodnější) je použít direktivu ScriptAlias
, např.
ScriptAlias /cgi-bin/ "/opt/httpd/cgi-bin/"
Pak všechno, co bude podle ní mapováno, bude považováno za CGI skript.
Options +ExecCGI
ExecCGI
". Jestli použít 'Options +ExecCGI
' nebo jestli vyjmenovat všechny, to už si musí každý vybrat sám. :-)
ScriptAlias
.
<(file || location) ...> Options +ExecCGI SetHandler cgi-script </...>
ExecCGI
a handler je v tom, že pokud uděláte chybu (zapomenete pro nějaký adresář napsat plus u jiné option, nenatáhnete modul nebo přeložíte Apache bez podpory CGI, …), pak vám Apache udělá přesně to, co tazateli: pošle klientovi skript (v němž může být třeba i heslo k databázi). Když uděláte chybu u řešení přes ScriptAlias
, tak CGI skript prostě jen nebude dostupný, což je podstatně menší zlo.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.