2012-03-12 26 views
5

Hay Apache 2 + mod_wsgi + Python 2.6 en el servidor.Ejecutando scripts de Python como PHP

Me gustaría ejecutar scripts de Python como scripts PHP. La idea puede parecer tonta, pero estoy tan acostumbrado (al menos al principio aprendiendo Python).

Ejemplo:

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

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

P.S. Sé sobre mod_rewrite y otros trucos similares que pueden hacer eso. Pero es solo un disfraz, y no una carrera directa.

UPD: Mi archivo .htaccess. index.py funciona, pero otros scripts de Python obtienen el error 404.

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

Respuesta

1

que no se ve tan fresco como tener una aplicación WSGI en marcha, por lo que recomiendo que utilice el flask framework que es tan simple como puede ser un marco cuerdo.

Aquí hay un enlace que describe el install procedure on mod_wsgi.

Más adelante, es posible que desee considerar un marco fresco como Django, Pirámide, Grok ...

Si realmente desea utilizar mod_wsgi gusta comprobar mod_php gran respuesta de Graham Dumpleton.

+0

he escrito en alguna parte sobre mod_python? Sé que está desactualizado ... ¿WSGI tiene solo un punto para ejecutar un guión? – Ticksy

+0

Supongo que he leído mal el artículo. No creo que pueda usar WSGI para hacer una configuración [mod_python/php-like] (http://webpython.codepoint.net/mod_python_publisher_uri_traversal). Estoy agregando un enlace relevante a mi respuesta. – jpic

+1

Es completamente incorrecto decir 'Se espera conectarse a un proceso WSGI en ejecución a través de un socket'. No funciona de la forma en que pareces pensar que lo hace. –

2

Técnicamente lo que está haciendo debería funcionar, pero véase el método AddHandler para configurar mod_wsgi en:

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

De esa manera usted no tiene que tocar el violín con la directiva de archivos.

SetHandler hace algo similar, pero todos los archivos en contexto se tratan como archivos de script WSGI, incluso si pueden ser archivos HTML o PHP estáticos. Te saliste con la tuya porque califica con Files, pero es mejor usar AddHandler.

Tenga en cuenta que la recarga de código no funcionará como lo está acostumbrado con PHP. Ver:

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

+0

Solo funciona index.py. Otros archivos * .py muestran un error 404. – Ticksy

+0

La manera con WSGIScriptAlias ​​que no me gustó. – Ticksy

+0

WSGIScriptAlias ​​es la forma en que prácticamente todo el mundo lo usa porque la norma es que las personas usan un marco de alguna descripción. Es altamente desaconsejable que escriba cosas WSGI desde cero, ya que es muy fácil equivocarse. Si no funciona para otras URL .py, es probable que suceda algo más en el resto de su configuración de Apache, que lo está afectando, ya que es posible hacerlo. –

Cuestiones relacionadas