Dnes si řekneme, jak získat parametry serveru Apache, které se dají využít v CGI skriptech.
Dnes si řekneme, jak získat parametry serveru Apache, které se dají využít v CGI skriptech. Pro náš příklad budeme mít skript umístěn v adresáři pro CGI skripty , tj.
C:\Program Files\Apache Group\Apache\cgi-bin\cgi3.cgi ($HOME/apache/share/cgi-bin/cgi3.cgi) na URL adrese
www.server.cz/cgi-bin/cgi3.cgiDostupné parametry
DOCUMENT_ROOT – Adresář, kde jsou uloženy HTML soubory na vašem www serveru. Tento parametr se dá změnit, pokud budete editovat soubor
C:\Program Files\Apache Group\Apache\conf\httpd.conf ($HOME/apache/etc/httpd.conf) a v tomto souboru najdete příkaz
DocumentRoot.
c:/program files/apache group/apache/htdocs
($HOME/apache/share/htdocs)
HTTP_VIA – Pokud přistupuje uživatel Internetu na váš www server přes proxy, pak zde zjistíte adresu proxy serveru i software, který je pro proxy server použit. V našem případě je proxy server na adrese proxy.server.cz, port 8080 a software je Squid verze 1.1.22. Pokud uživatel Internetu nepřistupuje přes proxy server, pak bude tato hodnota prázdná.
proxy.server.cz:8080 (Squid/1.1.22)
HTTP_ACCEPT_LANGUAGE – Je výhodné, pokud máte na serveru například českou a anglickou verzi dokumentů, a nechcete, aby si uživatel musel vybrat, pak to může jednoduchý CGI skript udělat za něj. Tento parametr se dá nastavit v prohlížeči. V Netscape 4.x je to například zde: Edit – Proference – Navigator – Languages.
en
GATEWAY_INTERFACE – verze rozhraní serveru pro CGI skripty
CGI/1.1
PATH – Nastavení cesty, kde se hledají soubory.
C:\WINDOWS;C:\WINDOWS\COMMAND
(/usr/local/bin:/usr/bin:/bin:.:/usr/local/bin:
/usr/local/bin:/usr/local/pgsql/bin:/usr/sbin:/sbin:
/usr/local/pgsql/bin: /usr/local/bin:/usr/local/pgsql/bin:
/usr/sbin:/sbin:/usr/local/pgsql/bin:/usr/X11/bin:$HOME/httpd/bin)
SCRIPT_FILENAME – Cesta k CGI skriptu
c:/program files/apache group/apache/cgi-bin/cgi3.cgi
($HOME/apache/share/cgi-bin/cgi3.cgi)
SCRIPT_URL – Část URL adresy směřující k CGI skriptu, ale bez názvu serveru, a také bez parametrů CGI skriptu. Pokud máte Apache pro Windows, pak ten u tohoto parametru nezobrazuje nic. Zkoušel jsem hledat jestli je to chyba, ale nic jsem nenašel.
/cgi-bin/cgi3.cgi
SCRIPT_URI - Úplná URL adresa CGI skriptu i s názvem serveru, portem, ale bez parametrů CGI skriptu.
http://www.server.cz:80/cgi-bin/cgi3.cgi
SCRIPT_NAME – To samé jako SCRIPT_URL
/cgi-bin/cgi3.cgi
Informace o uživateli Internetu, který přistupuje na váš www server
REMOTE_ADDR – IP adresa uživatele Internetu. Tento parametr je velice užitečný, pokud chcete sledovat jakoukoliv statistiku na vašem serveru.
123.45.56.89
REMOTE_HOST – Jmenná adresa uživatele Internetu. Pokud uživatel internetu nemá jmennou adresu, pak se zobrazí jeho IP adresa.
Uzivatel-internetu.provider.cz
HTTP_USER_AGENT – Typ prohlížeče, který uživatel používá.
Mozilla/4.05 [en] (Win95; I)
Informace o serveru
SERVER_PORT – Port, na kterém server běží. Pokud je port 80, pak stačí zadat název server ve tvaru
www.server.cz. Parametr se dá změnit v souboru
C:\Program Files\Apache Group\Apache\conf\httpd.conf ($HOME/apache/etc/httpd.conf), příkaz
Port.
80
SERVER_SOFTWARE – Název serveru. V závorce je uveden, na jakém operačním systému server běží. Pokud server používá nějaké nestandardní moduly, pak se také vypíšou (viz. druhý řádek příkladu)
Apache/1.3.3 (Win32)
(Apache/1.3.1 (Unix) mod_ssl/2.0.4 SSLeay/0.9.0b)
SERVER_ADMIN – Email adresa správce www serveru. Parametr se dá změnit v souboru C:\Program Files\Apache Group\Apache\conf\httpd.conf ($HOME/apache/etc/httpd.conf) ,příkaz ServerAdmin.
erik@email.cz
SERVER_PROTOCOL – Verze HTTP protokolu. V některých zvláštních případech může napsat INCLUDED
HTTP/1.0
SERVER_NAME – Jmenný název www serveru. Tento parametr se dá změnit v souboru C:\Program Files\Apache Group\Apache\conf\httpd.conf ($HOME/apache/etc/httpd.conf), příkaz ServerName.
www.server.cz
Dekódovaní vstupu z formuláře
REQUEST_URI – část URL adresy bez názvu www serveru odkud přišel dotaz.
/cgi-bin/cgi3.cgi?promenna1=hodnota1&promenna2=hodnota2
REQUEST_METHOD – Metoda, kterou jste volali CGI skript. Může to být GET, POST nebo PUT.
GET
QUERY_STRING – Parametry CGI skriptu. V dalším díle si ukážeme jak tyto parametry dekódovat.
promena1=hodnota1&promena2=hodnota2
CONTENT_TYPE – MIME typ dat, které zaslal uživatel Internetu. Týká se to pouze metody POST.
promena1=hodnota1&promena2=hodnota2
CONTENT_LENGTH – délka dat zaslaný od uživatele internetu metodou POST.
123
Pokud používáte zaheslovaný přístup na server, jak jsem o něm psal v článku Konfigurace Apache: řízení přístupu díl druhý, pak server navíc zobrazí i tyto parametry:
USER_NAME – účet, který po vás chce server pro přístup do zaheslovaných adresářů. Účet se nastavuje v souboru, který je definován v soubor C:\Program Files\Apache Group\Apache\conf\access.conf ($HOME/apache/etc/access.conf), v příkazu <Directory …>
erik
AUTH_TYPE – Typ autorizace přístupu do zaheslovaných adresářů. Dá se opět změnit v souboru C:\Program Files\Apache Group\Apache\conf\access.conf ($HOME/apache/etc/access.conf), v příkazu <Directory …>
Basic
Příklad CGI skriptu:
#!/perl/bin/perl.exe
print "Content-type: text/html\n";
print "<HTML>\n <HEAD>\n <TITLE> Promenne Apache</TITLE>\n ";
print "</HEAD>\n";
print "<BODY BGCOLOR=#FFFFFF LINK=#000080 VLINK=#008E47>";
print "<BR>DOCUMENT_ROOT: $ENV{'DOCUMENT_ROOT'} ";
print "<BR>SERVER_PORT: $ENV{'SERVER_PORT'} ";
print "<BR>REMOTE_ADDR: $ENV{'REMOTE_ADDR'} ";
# takto dopiste i další parametry.
print "</BODY></HTML>;
exit;
Zde uvedené parametry Apache jsou ty, které se nejčastěji používají. Příště si ukážeme jak .