diaz Napisano Sierpień 28, 2006 Zgłoszenie Share Napisano Sierpień 28, 2006 czy perl powinienem dodatkowo jakoś konfigurować? zaznaczyłem wszystkie pakiety opcjonalne w menedźerze pakietów przy serwerze www, ustawilem odpowiednio wszystko w poziomie bezpieczeństaw i zaporze sieciowej a i po próbie uruchomienia skryptu w perlu #!/usr/bin/perl ## GI program which just prints its environment ## print "Content-type: text/plain\n\n"; foreach $var (sort(keys(%ENV))) { $val = $ENV{$var}; $val =~ s|\n|\\n|g; $val =~ s|"|\\"|g; print "${var}=\"${val}\"\n"; dostaję bash: print: command not found bash: skrypt_perl: line 6: syntax error near unexpected token `(' bash: skrypt_perl: line 6: `foreach $var (sort(keys(%ENV))) { ' a jezeli odpale ten sam skrypt w przegladarce www, to dostaje <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>500 Internal Server Error</title> </head><body> <h1>Internal Server Error</h1> <p>The server encountered an internal error or misconfiguration and was unable to complete your request.</p> <p>Please contact the server administrator, root@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.</p> <p>More information about this error may be available in the server error log.</p> <hr> <address>Apache/2.2.2 (Fedora) Server at localhost.localdomain Port 80</address> </body></html> dlaczego bash interpretuje skrypt i dlaczego Internal error dostaje? to wygląda tak jakby perl (_wogóle_ → w ogóle) ORT nie był zainstalowany.. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
@WalDo Napisano Sierpień 28, 2006 Zgłoszenie Share Napisano Sierpień 28, 2006 A na pewno masz perl w katalogu /usr/bin? Co pokazuje ls -l /usr/bin/perl? [Edit] I na koncu skryptu który wkleiles brakuje zamykajacej klamry } Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
diaz Napisano Sierpień 28, 2006 Autor Zgłoszenie Share Napisano Sierpień 28, 2006 to chyba wyrazi w pełni w jakiej jestem sytuacji (błąd poprawiłem, klamra domknięta) [bart@localhost ~]$ ls -l /usr/bin/perl -rwxr-xr-x 2 root root 15076 cze 5 01:46 /usr/bin/perl [bart@localhost ~]$ su -l Hasło: [root@localhost ~]# cd ~bart [root@localhost bart]# vi skrypt_perl [root@localhost bart]# . skrypt_perl -bash: print: command not found -bash: skrypt_perl: line 6: syntax error near unexpected token `(' -bash: skrypt_perl: line 6: `foreach $var (sort(keys(%ENV))) { ' to tak wygląda jakby domyślnie do wszystkie używał basha, da sie to zmienić? Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
@WalDo Napisano Sierpień 29, 2006 Zgłoszenie Share Napisano Sierpień 29, 2006 to tak wygląda jakby domyślnie do wszystkie używał basha, da sie to zmienić? W zasadzie 1.linia skryptu (#!/usr/bin/perl) powinna zmienić domyślną powłokę na perla. Wg mnie kwasi wszystko sposób wywołania ". skrypt_perl" - kropka nakazuje wykonać skrypt w bieżącej powłoce i być może wtedy ta 1. linia skryptu jest ignorowana. Moje propozycje są takie: Jako zwykły user bart (nie żadne tam "su -l" - po co ci to?): 1.Ustaw się w katalogu, w którym masz ten skrypt, upewnij się, że skrypt ma prawa wykonywania (jak nie to chmod +x skrypt_perl) i odpal: ./skrypt_perl (kropka i slash na początku to tylko dla pewności, że wykona się skrypt dokładnie z bieżącego katalogu) 2.Jak dalej będzie nie tak to jeszcze spróbuj perl ./skrypt_perl 3.Jeśli dalej nie działa, to zobacz czy w ogóle perl da się uruchomić. Jako zwykły user wpisz z linii komend perl<enter> potem jakieś polecenie perla np. print "aaa\n"; a potem wciśnij Ctrl-D - jak się pokaże napis "aaa" w osobnej linii tzn. że perl jest zainstalowany poprawnie i wtedy to ja wymiękam. Ale stawiam na to, że ta kropka bruździ. Pozdr, W. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
diaz Napisano Sierpień 29, 2006 Autor Zgłoszenie Share Napisano Sierpień 29, 2006 dzieki pierwszy sposób już dizala teraz tylko pozostało nam dojść dlaczego ten sam plik sie nie odpala w przeglądarce internetowej jest zapisany pod nazwa skrypt_perl.pl i zwraca białą stronę (nic nie wyświetla) Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
@WalDo Napisano Sierpień 29, 2006 Zgłoszenie Share Napisano Sierpień 29, 2006 dzieki pierwszy sposób juz dizalaTak myslalem... teraz tylko pozostalo nam dojsc dlaczego ten sam plik sie nie odpala w przegladarce internetowejA skryptu CGI w przegladarce to mi sie nigdy nie udalo uruchomic pomimo dlugiej lektury poradników w necie, kombinowania z konfigiem Apacha (Options ExecCGI, zmiany sciezek do ScriptAlias, AddHandler itp). Dokladnie ten sam efekt co u Ciebie - bialy ekran Jakbys mial jakies sukcesy w tym zakresie to pamietaj sie tu pochwalic [Edit]Na poczatek to sprawdz jeszcze czy masz w konfigu Apacha taka linijke odkomentowana LoadModule perl_module modules/libperl.so no i czy w podkatalogu modules Apacha istnieje ta biblioteka. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
diaz Napisano Sierpień 29, 2006 Autor Zgłoszenie Share Napisano Sierpień 29, 2006 już działa mam wiecej szczescia niz rozumu zwrocilo mi w przeglądarce tak: DOCUMENT_ROOT="/var/www/html" GATEWAY_INTERFACE="CGI/1.1" HTTP_ACCEPT="text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5" HTTP_ACCEPT_CHARSET="ISO-8859-2,utf-8;q=0.7,*;q=0.7" HTTP_ACCEPT_ENCODING="gzip,deflate" HTTP_ACCEPT_LANGUAGE="pl,en-us;q=0.7,en;q=0.3" HTTP_CACHE_CONTROL="max-age=0" HTTP_CONNECTION="keep-alive" HTTP_COOKIE="pma_lang=pl-utf-8; pma_theme=original; pma_charset=iso-8859-1; pma_collation_connection=utf8_general_ci" HTTP_HOST="localhost" HTTP_KEEP_ALIVE="300" HTTP_REFERER="http://localhost/~bart/" HTTP_USER_AGENT="Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.8.0.6) Gecko/20060808 Fedora/1.5.0.6-2.fc5 Firefox/1.5.0.6 pango-text" PATH="/usr/local/bin:/usr/bin:/bin" QUERY_STRING="" REMOTE_ADDR="127.0.0.1" REMOTE_PORT="59304" REQUEST_METHOD="GET" REQUEST_URI="/~bart/skrypt_perl.pl" SCRIPT_FILENAME="/home/bart/public_html/skrypt_perl.pl" SCRIPT_NAME="/~bart/skrypt_perl.pl" SERVER_ADDR="127.0.0.1" SERVER_ADMIN="root@localhost" SERVER_NAME="localhost" SERVER_PORT="80" SERVER_PROTOCOL="HTTP/1.1" SERVER_SIGNATURE="<address>Apache/2.2.2 (Fedora) Server at localhost Port 80</address>\n" SERVER_SOFTWARE="Apache/2.2.2 (Fedora)" teraz sie zastanawiam co ja moglem takiego zmienić że zaczeło działać... wolałbym wiedziec zanim sobie ta opcje niechcacy wyłączę nie mam pewnosci na jak dlugo Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
@WalDo Napisano Sierpień 29, 2006 Zgłoszenie Share Napisano Sierpień 29, 2006 wolałbym wiedziec zanim sobie ta opcje niechcacy wyłączęJa też bym chciał wiedzieć, a jeszcze bardziej jak włączyć . W zasadzie co do wykorzystania na stronach to i tak PHP jest szybszy, lepszy i w ogóle bardziej na czasie, funkcjonalny itp. Ale jakiś skrypt CGI bym odpalił chociaż tak sobie hobbystycznie na localhost Jak obczaisz co i jak to daj znać na forum. Pozdr, W. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się