2011-07-07 11 views
6

Chcę uruchomić plik Pythona w przeglądarce. Mam zainstalowany apache. i skonfigurowany plik httd.conf. Utworzono plik test.py. Następnie próbowałem uruchomić test.py w przeglądarce, wpisując htt://localhost/test.py. Kiedy to zrobić, pojawia się następujący błąd:Uruchamianie pliku .py w przeglądarce

Internal Server Error 
The server encountered an internal error or misconfiguration and was unable to complete your request. 
Please contact the server administrator, [email protected] and inform them of the time the error occurred, and anything you might have done that may have caused the error. 
More information about this error may be available in the server error log. 

W moim dzienniku błędów

[Thu Jul 07 18:39:55 2011] [error] [client 127.0.0.1] (OS 2)The system cannot find the file specified. : couldn't create child process: 720002: test.py 
[Thu Jul 07 18:39:55 2011] [error] [client 127.0.0.1] (OS 2)The system cannot find the file specified. : couldn't spawn child process: C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/test.py 

Co może być problem?

+7

Uruchomione Pythona w przeglądarce oznacza, że ​​trzeba skonfigurować przeglądarkę, a nie serwera. Po uruchomieniu Pythona w przeglądarce, twoja przeglądarka (FireFox, IE, Opera, Safari itp.) Uruchamia Python. To nie ma nic wspólnego z Apache. Co tak naprawdę naprawdę robisz? –

+0

@ S.Lott A jak skonfigurować przeglądarkę? –

Odpowiedz

0

Jeżeli nie zostało to zrobione już, trzeba ustawić odpowiednie uprawnienia test.py do 755.

+0

Dzięki za odpowiedź, w jaki sposób ustawić to uprawnienie w Windows 7. –

+0

@Roayl Pinto - Dobre pytanie; Sam jestem facetem z Unixem. Nie zdawałem sobie sprawy, że jesteś w systemie Windows i może to nie mieć znaczenia dla Apache. –

1

Jeśli jest to program CGI, upewnij się, że jest on zgodny ze specyfikacją CGI (tj wyprowadza wiersz nagłówka z typem MIME i pustą linią przed próbą napisania cokolwiek innego)

0

Czy plik jest zapisany w komunikacie o błędzie: C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs /. Jeśli nie, musisz go tam umieścić lub zmienić konfigurację tak, aby wyglądała w odpowiedniej lokalizacji.

Ponadto, podobnie jak w przypadku innych odpowiedzi, sprawdź, czy ma on poprawne uprawnienia i czy wyprowadza wszystkie niezbędne nagłówki.

0

chciałbym zmienić swój adres URL do bardziej prawdopodobny w pierwszej instancji, tj http://localhost/test.py niż ta, którą cytowany (htt://localhost/test.py)

0

można spróbować mod_pythona, obsługuje aplikacje internetowe napisane w python.the parsera dostaje osadzone na serwerze jako moduł apache, więc aplikacja działa szybciej niż tradycyjne cgi. Również jeśli chcesz zachować sposób cgi, sprawdź, czy wszystkie pliki .py znajdują się w folderze o nazwie "cgi-bin" i mają prawa do wykonywania.

2

Opcje + ExecCGI pod htdocs, ScriptAlias ​​/ cgi-bin/"C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin /"

To, co mam i to działa

+0

Twój plik prawdopodobnie powinien znajdować się pod cgi-bin –

10

Może się również zdarzyć, jeśli Twój shebang nie jest poprawny (na przykład taki uniksowy jak #!/usr/bin/env python). Jeśli jest to przypadek, zmień go na właściwą ścieżkę do Pythona wykonywalnego (na przykład: #!C:\Python26\python.exe) lub spojrzeć na to odpowiedź: How do I ignore the Perl shebang on Windows with Apache 2?

Powiązane problemy