Otwieranie plików w skryptach CGI |
|
indris Wdrażany
Liczba postów: 16
|
Post: #1
Otwieranie plików w skryptach CGI
Mam Windows 7 Home Premium i zainstalowany IIS 7.5.
Próbuję uruchomić skrypt, który napisany był w Perlu i działał poprawnie na serwerze linuksowym. W przeglądarce wpisuję http://localhost/gamecgi/zgadywanka.cgi Dostaję następujący komunikat: Software error: Niemożliwe otwarcie pliku słów at C:\inetpub\wwwroot\gamecgi\zgadywanka.cgi line 38. For help, please send mail to this site's webmaster, giving this error message and the time and date of the error. W wierszach 37 i 38 inkryminowanego skryptu jest: $datafile="answers.dat"; open FH, $datafile or die "Niemożliwe otwarcie pliku słów"; Plik answers.dat istnieje w tym samym folderze co skrypt. Nadałem mu w Eksploratorze ( jak umiałem) wszystkie możliwe uprawnienia i to dla wszystkich zauważonych użytkowników. I klops. Co mam zrobić, żeby skrypt był łaskaw otwierać plik ? . 12.11.2010 12:55 |
|
|
indris Wdrażany
Liczba postów: 16
|
Post: #2
RE: Otwieranie plików w skryptach CGI(12.11.2010 12:55)indris napisał(a): Mam Windows 7 Home Premium i zainstalowany IIS 7.5. Znalazłem wyjście, dla tego skryptu, ale go nie rozumiem. Okazało się, że "sekret" działania skryptu polegał na tym, że do tego samego pliku należało się odwoływać raz przez jego "gołą" nazwę a innym razem przez względną ścieżkę. Tak więc: w procedurze sub newgame { my ($datafile, @answers,$index1, $i, $raport); $datafile="$Prefiks/answers.dat"; if(-e $datafile) { # DODANE 14.11.2010 open FH, $datafile or die "Niemożliwe otwarcie pliku słów"; @answers = <FH>; close (FH); $raport = " Odpowiedzi wczytano z pliku $datafile"; } else { @answers = ("lemur", "sifaka", "indris", "wari", "katta"); # UWAGA zastępstwo $raport = " Odpowiedzi ustawiono w tablicy ("; for($i = 0; $i < @answers; $i++) { $raport .= " $answers[$i]"; } $raport .= " )"; } srand(time ^ $$); $index1 = $#answers * rand; $TheAnswer = $answers[$index1]; chomp($TheAnswer); $TheMisses = "-"; $TheHits = ""; for($i = 0; $i < length($TheAnswer); $i++) { $TheHits .= "-"; } displayresult("Start Gry: ".$raport); # UWAGA!! } plik został znaleziony dopiero wtedy, gdy nazwa pliku była dopełniona nazwą katalogu (zmienna $Prefiks) Natomiast w konstrukcji if(-e "$Prefiks/hang${len}.gif") { #CHOLERA $Co->img( {-src=>"$Prefiks/hang${len}.gif", $Co->img( {-src=>"hang${len}.gif", -align=>'left', -vspace=>10, -hspace=>1} ); } else { print"<h3> Nie widać pliku: ", "$Prefiks/hang${len}.gif</h3>"; } przy sprawdzaniu istnienia pliku trzeba było użyć ścieżki, natomiast przy znaczniku img nie można było jej użyć. Adres wpisany do przeglądarki był: http://localhost/gamecgi/mikrozgadywankaWR.cgi Niby więc wszystko jest OK, ale skrypt przestał być przenośny, bo na serwerze linuksowym chyba by ten skrypt nie zadziałał. tak jak skrypt z serwera linuksowego nie chciał działać u mnie. Może ktoś umie wyjaśnić to zjawisko ? 16.11.2010 01:27 |
|
|
indris Wdrażany
Liczba postów: 16
|
Post: #3
RE: Otwieranie plików w skryptach CGI
Udało mi się doprowadzić skrypt do przenośności. Polegało to na tym, że wymuszam ustawienie katalogu bieżącego na taki, który wynika z jego "wywołania". Na IIS to działa, n linuksowym Apache również, chociaż tam de facto nic nie robi.
Przy okazji dowiedziałem się od przyjaciół, że identyczny problem mieli już wcześniej inni: http://groups.google.com/g/f837ff08/t/56...56cf25c42d http://groups.google.com/group/comp.lang...b26f2b8d96 Zasadnicze pytanie jest więc takie: Czy (i ewentualnie jak0 można skonfigurować serwer IIS7 tak, żeby przy wykonywaniu się aplikacji CGI napisanej w Perlu bieżący katalog był taki, jak katalog, na którym jest skrypt ? 28.11.2010 01:28 |
|
Podobne wątki | ||||
Wątek: | Autor | Odpowiedzi: | Wyświetleń: | Ostatni post |
Zapisywanie i otwieranie plików w Windows 7 | qwertyx12 | 0 | 3.249 |
10.02.2011 21:22 Ostatni post: qwertyx12 |
Rozwiązany Otwieranie plików przez Worda (rozwiązany) | kamisiu91 | 7 | 11.896 |
02.05.2010 17:10 Ostatni post: Portator |
Spowolnione/podwójne otwieranie okien | sth01 | 7 | 8.943 |
13.01.2010 23:12 Ostatni post: Nostromo |
« Starszy wątek | Nowszy wątek »
Autor: indris Temat został oceniony na 0 w skali 1-5 gwiazdek. Zebrano 0 głosów. |