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: Software, Windows, Programování, CGI, Apache, Program Files, Skript, Dali, Proxy, Proxy Server, Print


Určitě si přečtěte

Lenovo přivezlo na IFA 2018 skutečné inovace. Tyto tři notebooky stojí za to

Lenovo přivezlo na IFA 2018 skutečné inovace. Tyto tři notebooky stojí za to

** Yoga C930 nabídne revoluční reproduktor v kloubu displeje ** Yoga Book C930 představuje zdařilý reparát podivného Yoga Booku ** ThinkPad X1 Extreme se může pochlubit extrémní výbavou v tenkém těle

Tomáš Holčík | 16

Nedávno detekovaná potulná planeta je ohromné magnetické monstrum

Nedávno detekovaná potulná planeta je ohromné magnetické monstrum

** Astronomové nedávno zaznamenali pozoruhodné prvenství ** Poprvé s radioteleskopem detekovali planetární objekt za hranicemi Sluneční soustavy ** Stejně tak poprvé změřili magnetické pole takové planety

Stanislav Mihulka | 6

Jak funguje největší akumulátor v Česku: podívejte se do elektrárny Dlouhé Stráně

Jak funguje největší akumulátor v Česku: podívejte se do elektrárny Dlouhé Stráně

** Přečerpávací vodní elektrárna Dlouhé stráně je obdivuhodné technické dílo ** Stejná turbína vyrábí elektřinu i tlačí vodu zpět do horního jezera ** Strojovna elektrárny je zabudována v podzemí

David Polesný | 34

Odposlouchávali jsme děravou domácnost: Katka z Brightonu právě sedí doma, zatímco její manžel hraje asi golf

Odposlouchávali jsme děravou domácnost: Katka z Brightonu právě sedí doma, zatímco její manžel hraje asi golf

** Na internetu jsou tisíce nezabezpečených chytrých domácností ** Podívali jsme se na jednu z britského Brightonu ** Útočník sestaví kompletní socioekonomický profil rodiny

Jakub Čížek | 31

Na Zemi je nejtepleji za posledních více než 100 tisíc let. Co nám hrozí?

Na Zemi je nejtepleji za posledních více než 100 tisíc let. Co nám hrozí?

** Letošní červenec byl třetím nejteplejším měsícem od roku 1880 ** Teplota naší planety roste raketovým tempem ** Co lidstvu hrozí v období, které v minulosti nemá obdoby?

Karel Kilián | 68

Portál občana už funguje. Na státní web vypadá až překvapivě použitelně

Portál občana už funguje. Na státní web vypadá až překvapivě použitelně

** Portál občana už funguje, vyřídíte na něm první požadavky ** Funkce se budou postupně rozšiřovat ** Web je docela moderní a přehledný

David Polesný | 66


Aktuální číslo časopisu Computer

Megatest: 13 grafických karet

Srovnání 7 dokovacích stanic s USB-C

Jak na perfektní noční fotografie

Kvalitní zdroje informací pro sebevzdělávání