2012-03-12 7 views
5

Ci sono Apache 2 + mod_wsgi + Python 2.6 sul server.Esecuzione di script Python come PHP

Mi piacerebbe eseguire script da Python come script PHP. L'idea può sembrare sciocca, ma io sono così abituato (almeno a prima imparare Python).

Esempio:

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

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

P.S. Conosco mod_rewrite e altri trucchi simili che possono farlo. Ma è solo un travestimento, e non una corsa diretta.

UPD: Il mio file .htaccess. index.py funziona, ma altri script Python ottengono l'errore 404.

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

risposta

1

Che non sembra freddo come avere un WSGI applicazione in esecuzione, quindi vi consiglio di utilizzare il flask framework, che è così semplice come può essere un quadro sano di mente.

Questo è un collegamento che descrive lo install procedure on mod_wsgi.

In seguito, si potrebbe prendere in considerazione un quadro fresco come Django, Piramide, Grok ...

Se davvero si vuole utilizzare mod_wsgi piace mod_php controllare grande risposta di Graham Dumpleton.

+0

ho scritto da qualche parte su mod_python? So che non è aggiornato ... WSGI ha solo un punto di eseguire una sceneggiatura? – Ticksy

+0

Immagino di aver letto male l'articolo. Non penso che tu possa usare WSGI per fare una configurazione [mod_python/php-like] (http://webpython.codepoint.net/mod_python_publisher_uri_traversal). Sto aggiungendo un link pertinente alla mia risposta. – jpic

+1

È completamente sbagliato dire "Si aspetta di connettersi a un processo WSGI in esecuzione attraverso un socket". Non funziona nel modo in cui sembri pensarlo. –

2

Tecnicamente quello che stai facendo dovrebbe funzionare, ma si veda il metodo AddHandler per la configurazione mod_wsgi in:

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

In questo modo non c'è bisogno di giocherellare con la direttiva Files.

SetHandler fa la stessa cosa ma tutti i file nel contesto sono trattati come file di script WSGI anche se possono essere file HTML o PHP statici. Ce l'hai fatta perché qualificato con File, ma meglio usare semplicemente AddHandler.

Si noti che il ricaricamento del codice non funzionerà come si è abituati con PHP. Vedere:

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

+0

Funziona solo index.py. Altri file * .py mostrano 404 errori. – Ticksy

+0

Il modo con WSGIScriptAlias ​​non mi piace. – Ticksy

+0

WSGIScriptAlias ​​è il modo in cui praticamente tutti usano perché la norma è che le persone usano una struttura di descrizione. È altamente sconsigliato scrivere articoli WSGI da zero in quanto è troppo facile sbagliarlo. Se non funziona per altri URL di .py, è probabile che succeda qualcos'altro nel resto della configurazione di Apache che lo influenza come è possibile fare. –