[ EmmaR @ 03.10.2017. 10:39 ] @
Nešto se "igram" sa CGI skriptama i lokalnim serverom. Koristim lokalni web server instaliran kroz Bitnami Lampp stack. cgi-bin i htdocs folderi su smešteni unutar apache2 foldera. Perl, Ruby i Python kao CGI skripte (smeštene u cgi-bin) treba da pročitaju, malo izmene i prikažu sadržaj tekstualne datoteke koja je u stvari HTML sačuvan kao .txt. I, to radi, ali samo pod uslovom da je datoteka smeštena unutar cgi-bin direktorijuma. Ono što me muči jeste kako zadati relativnu URL adresu dokumenta koji se sačuvan u htdocs direktorijumu? Tekstualna datoteka sadrži i link koji upućuje na relativnu URL adresu i to je OK: Code: <a href='/test_site'>Back to START ...</a> Ali, ali ... nikako mi ne uspeva da postavim relativnu adresu za tekstualnu datoteku koju skripte treba da otvore. (OK, znam da mogu da iz skripte dinamički generišem HTML, ali s obzirom da sve tri skripte treba da generišu slične strane mislila sam da pojednostavim postupak). Da bi bilo jasnije o čemu se radi, ovo je tekstualna datoteka: Code: <!DOCTYPE html> <html> <head> <title></title> <style type="text/css"> * { background-color: #121121; color: #feffef; font-family: 'Comic Sans MS', Andika, Arial, sans-serif; } .centar { margin: 0 auto; margin-top: 7%; width: 50%; height: 25%; min-width: 500px; min-height: 250px; background-color: #232232; color: #eeeeee; text-align: center; padding-top: 7%; } h1, h2 { text-align: center; background-color: inherit; color: inherit; } h2 { font-weight: 300; } .perl { color: #ceffce; } .ruby { color: #ff0000; } .python { color: #00ff44; } nav { width: inherit; background-color: inherit; text-align: right; padding-right: 1%; padding-bottom: 1.5%; } </style> </head> <body> <div class="centar"> <h2></h2> <h1>Hello, World!</h1> </div> <nav> <a href='/test_site'>Back to START ...</a> </nav> </body> </html> CSS je ubačen direktno jer nisam uspela da povežem sa eksternim .css fajlom, pa čak ni kada je u istom folderu. Ovo je Perl skripta: Code: #!/usr/bin/perl print("Content-Type: text/html;charset=utf-8\n\n"); open(FH,"<hello-world.txt"); #ovde treba da ide relativna URL adresa do localhost/test_site/my-files/ while(<FH>) { if ( $_ eq "<title></title>\n") { print("<title>Hello from Perl</title>"); } elsif ( $_ eq "<h2></h2>\n") { print("<h2 class='perl'>Perl CGI</h2>"); } else { print($_); } } close(FH); exit; (tema je relativna URL adresa, skripta nije 100% OK - nedostaju sigurnosne mere). Kako sakriti ili izmeniti deo URL adrese kroz .htaccess fajl. U ovom slučaju htela bih da sakrijem da je skripta pozvana iz cgi-bin foldera. Da li je obavezno da Perl, Ruby i Python skripte budu čuvane unutar cgi-bin direktorijuma? Kod mene rade i kada su unutar htdocs-a. Dopuna: Problemi sa URL adresama su rešeni, pa ako nekome zatreba: Perl: Code: open(FH,"<../../my-files/hello-world.txt"); Python: Code: for line in open("../../my-files/hello-world.txt","r"): Ruby: Code: AppRoot = File.expand_path('../../my-files',File.dirname(__FILE__)) File.open(File.join(AppRoot, "hello-world.txt"),"r") do |fh| [Ovu poruku je menjao EmmaR dana 03.10.2017. u 12:48 GMT+1] |