python - digitalocean - Hello World-Flask/Apache/mod_wsgi-sin respuesta de Apache
run flask as a service ubuntu (1)
¿A qué ip apunta helloflask.midominio.com? Prueba agregar
127.0.0.1 helloflask.mydomain.com helloflask
A su archivo de hosts, y apuntando su navegador web a
http://helloflask.mydomain.com
Estoy siguiendo el tutorial en http://www.enigmeta.com/2012/08/16/starting-flask/ para desarrollar e implementar una aplicación de matraz simple a Apache usando mod_wsgi. Creo que lo reduje a un defecto en mi configuración de Apache. Si ejecuto helloflask.py desde la línea de comandos, funciona bien. Puedo acceder a él a través de wget desde otro shell en localhost: 5000, y obtengo la respuesta correcta. También tengo otros hosts virtuales (no wsgi) en funcionamiento, por lo que sé que Apache se está ejecutando y respondiendo a otras solicitudes en el puerto 80.
Tengo la siguiente estructura:
/sites/helloflask.mydomain.com
/helloflask
application.wsgi
helloflask.py
(rest of env from virtualenv)
/log
access.log
error.log
helloflask.py:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run()
application.wsgi:
import os, sys, logging
logging.basicConfig(stream=sys.stderr)
PROJECT_DIR = ''/sites/helloflask.mydomain.com/helloflask''
activate_this = os.path.join(PROJECT_DIR, ''bin'', ''activate_this.py'')
execfile(activate_this, dict(__file__=activate_this))
sys.path.append(PROJECT_DIR)
from helloflask import app as application
Configuración de Apache: /etc/apache2/sites-available/helloflask.mydomain.com
<VirtualHost *:80>
ServerName helloflask.mydomain.com
WSGIDaemonProcess helloflask user=myuser group=myuser threads=5
WSGIScriptAlias / /sites/helloflask.mydomain.com/helloflask/application.wsgi
<Directory /sites/helloflask.mydomain.com/helloflask>
WSGIProcessGroup helloflask
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
LogLevel warn
ErrorLog /sites/helloflask.mydomain.com/log/error.log
CustomLog /sites/helloflask.mydomain.com/log/access.log combined
</VirtualHost>
Habilito el vhost, reinicio Apache y no obtengo respuesta del navegador. "Servidor no encontrado", por lo que no hay respuesta 500, nada. No hay entradas en los registros de acceso / error (específicos de este vhost). Obtengo lo siguiente en el registro de error de Apache general cada vez que reinicio:
[Sat Jun 29 20:07:58 2013] [notice] caught SIGTERM, shutting down
[Sat Jun 29 20:07:59 2013] [warn] mod_wsgi: Compiled for Python/2.7.2+.
[Sat Jun 29 20:07:59 2013] [warn] mod_wsgi: Runtime using Python/2.7.3.
[Sat Jun 29 20:07:59 2013] [notice] Apache/2.2.22 (Ubuntu) PHP/5.3.10-1ubuntu3.6 with Suhosin-Patch mod_wsgi/3.3 Python/2.7.3 configured -- resuming normal operations
Me pregunto si esas dos [advertencias] líneas que indican diferentes versiones de Python son mi problema, pero no sé cómo ni qué modificar para solucionarlo. Cualquier sugerencia es apreciada
¡Gracias!