Apache a CGI skripty III. - serverové proměnné

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.cgi

Dostupné 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 .
  

Váš názor Další článek: IBM vstupuje do digitálních foťáků: základní výzkum se zase jednou vyplatil

Témata článku: , , , , , , , , , , , , ,