2012-03-12 14 views
5

Istnieją Apache 2 + mod_wsgi + Python 2.6 na serwerze.Uruchamianie skryptów w języku Python, takich jak PHP

Chciałbym uruchomić skrypty z Pythona jak skrypty PHP. Pomysł może wydawać się głupi, ale jestem tak przyzwyczajony (przynajmniej na początku nauki Pythona).

przykład:

PHP - http://example.com/script.php

Pythonie - http://example.com/script.py

P.S. Wiem o mod_rewrite i innych podobnych sztuczkach, które mogą to zrobić. Ale to tylko przebranie, a nie bezpośredni bieg.

UPD: Mój plik .htaccess. index.py działa, ale inne skrypty Pythona otrzymują błąd 404.

<Files *.py> 
SetHandler wsgi-script 
Options ExecCGI FollowSymLinks 
</Files> 
DirectoryIndex index.py 

Odpowiedz

1

To nie wygląda jak chłodny jako posiadające WSGI app uruchomiony, więc polecam skorzystanie z flask framework który jest tak proste, jak może być rozsądny ramy.

Oto link opisujący install procedure on mod_wsgi.

Później, być może warto rozważyć chłodne ramy jak Django, Pyramid, Grok ...

Jeśli naprawdę chcesz użyć mod_wsgi podoba mod_php sprawdzić wielką odpowiedź Grahama Dumpleton użytkownika.

+0

Pisałem gdzieś mod_pythonem? Wiem, że jest nieaktualny ... WSGI ma tylko jeden punkt uruchamiania skryptu? – Ticksy

+0

Chyba źle przeczytałem artykuł. Nie sądzę, że możesz użyć WSGI do konfiguracji [mod_python/php-like] (http://webpython.codepoint.net/mod_python_publisher_uri_traversal). Dodaję odpowiedni link do mojej odpowiedzi. – jpic

+1

Jest całkowicie błędne stwierdzenie "Oczekuje on połączenia z działającym procesem WSGI przez gniazdo.". Nie działa tak, jak ci się wydaje, że tak jest. –

2

Technicznie co robisz powinno działać, ale patrz metoda AddHandler konfigurowania mod_wsgi w:

http://code.google.com/p/modwsgi/wiki/ConfigurationGuidelines#The_Apache_Alias_Directive

W ten sposób nie trzeba się bawić z dyrektywą Files.

SetHandler robi podobnie, ale wszystkie pliki w kontekście są traktowane jako pliki skryptu WSGI, nawet jeśli mogą to być statyczne pliki HTML lub PHP. Uwalniłeś go, ponieważ kwalifikowałeś się za pomocą plików, ale lepiej po prostu użyć AddHandler.

Należy pamiętać, że przeładowanie kodu nie będzie działać tak, jak przyzwyczajenie do PHP. Zobacz:

http://code.google.com/p/modwsgi/wiki/ReloadingSourceCode

+0

Działa tylko w pliku index.py. Inne pliki * .py pokazują błąd 404. – Ticksy

+0

Droga z WSGIScriptAlias ​​mi się nie podobała. – Ticksy

+0

WSGIScriptAlias ​​to sposób, w jaki praktycznie każdy z nas korzysta, ponieważ normą jest, że ludzie używają jakiegoś szkieletu jakiegoś opisu. Zniechęcanie do pisania WSGI od podstaw jest wysoce zniechęcające, ponieważ jest to zbyt łatwe do złagodzenia. Jeśli nie działa w przypadku innych adresów URL .py, prawdopodobnie w dalszej części konfiguracji Apache dzieje się coś innego, co wpływa na to, co jest możliwe. –

Powiązane problemy