2010-07-18 15 views
11

¿Alguien sabe cómo implementar una aplicación simple de Flask en Webfaction? Sé que Webfaction admite mod_wsgi y leí la guía en el sitio de Flask, pero aún así no puedo hacer que mi aplicación funcione. ¿Alguien tiene una configuración funcional?¿Cómo implementar la aplicación Flask en Webfaction?

ACTUALIZACIÓN para responder un comentario de Graham Dumpleton.

Aparece un error interno del servidor 500. Apache no muestra ningún error en los registros. El script WSGI se ejecuta y parece crear la aplicación correctamente, pero sigo recibiendo un error de 500.

Gracias.

+1

Cuál es el error real que ¿está recibiendo? –

+0

Intenta activar la depuración en Flask. Olvidé cómo hacerlo, así que es posible que desee preguntar en el canal #pocco irc. Si usa el modo daemon mod_wsgi con un único proceso, también puede activar el depurador Flask. –

+0

¿alguna vez hizo que esto funcionara? ¿La respuesta de JoshFinnie fue para ti? –

Respuesta

16

lo tengo trabajando con el siguiente procedimiento:

  • crear y aplicación llamada 'miaplicacion' de tipo mod_wsgi 3.3/Python 2.7. Webfaction creará las siguientes carpetas:

    myapp 
        |- apache2 
        |- htdocs 
    
  • webfaction también creará automáticamente un script sencillo index.py en su directorio htdocs. Verifique si el script de muestra funciona visitando la raíz de su aplicación recién creada (para hacer thin en Webfaction necesita "montar" la aplicación en un sitio web). Si todo está bien modificar la secuencia de comandos de eliminar el contenido y añadiendo:

    from myapp import app as application 
    
  • En apache2/conf/httpd.conf Añada las líneas siguientes:

    WSGIPythonPath /home/username/webapps/myapp/htdocs/ 
    #If you do not specify the next directive the app *will* work but you will 
    #see index.py in the path of all subdir 
    WSGIScriptAlias//home/username/webapps/myapp/htdocs/index.py 
    
    
    <Directory /home/username/webapps/myapp/htdocs> 
        AddHandler wsgi-script .py 
        RewriteEngine on 
        RewriteBase/
        WSGIScriptReloading On 
    </Directory> 
    
  • apache2 Reiniciar

+7

tenga en cuenta que myapp.py debe estar en la ruta de búsqueda del módulo de python. Simplemente puede hacer eso agregando el siguiente código a su index.py (si myapp.py está almacenado al lado del índice.py): 'import sys sys.path.append ('/ home//webapps//htdocs')' –

+0

En realidad, sin ajustar 'sys.path', recibí 500 errores internos que fueron causados por un Python ImportError, que fue indicado por el archivo de registro de Apache en '/ home//logs/user/error_ .log'. –

1

Debe configurar una aplicación "Aplicación personalizada (escuchando en el puerto)". Anote el puerto que está asignado. Luego, en el código del frasco, que necesita para poner hardcode el puerto:

if __name__ == __main__: 
    app.run(host='0.0.0.0' port=XXXXXXX) 

Cuando usted substituye XXXXXXX con el puerto que se asigna al azar a su aplicación personalizada.

Espero que ayude.

EDIT:

Utilice Raben's Answer, de esta manera no debe de usarse en la producción.

+0

No se recomienda el uso de app.run para la producción. Es fácil y hará el trabajo rápidamente, pero cuando su proyecto madure, debe cambiar a algo como mod_wsgi. – Joe

+0

Paso 2: a través del panel de control "Agregar sitio web" que apunta a esta aplicación. – Shekhar

+0

De acuerdo con Joe, esto es malo para la producción. app.run() debe usarse solo para desarrollo. –

Cuestiones relacionadas