Cómo obtener apache para servir archivos estáticos en la aplicación web Flask
Recibo un error interno 500 al intentar que Apache sirva mis archivos estáticos.
La aplicación se alojará localmente (no se enfrenta a www). No habrá DNS para resolver un nombre de 'www.dominio.com'. Quiero poder acceder a la aplicación ingresando la dirección IP del servidor cuando estoy en esa red.
Este es mi archivo httpd.conf (estoy en RHEL):
<Directory /var/www/testapp>
Order allow,deny
Allow from all
</Directory>
WSGIScriptAlias / /var/www/testapp/service.wsgi
Si cambio el WSGIScriptAlias aWGSIScriptAlias /test /var/www/testapp/service.wsgi
entonces puedo ver mis archivos estáticos cuando escribo la IP, pero aún no puedo acceder al script service.py desde [IP] / test.
En cualquier caso, quiero poder atender todas las solicitudes GET / POST con el script service.py, así que quiero que mi alias comience en/
, no en otro lugar.
Todos mis archivos estáticos están en / var / www / html (Apache estaba mostrando estos archivos automáticamente antes de que me metiera en httpd.conf, ahora estoy obteniendo un 500).
Este es mi service.wsgi:
import sys
sys.path.insert(0, '/var/www/testapp')
from service import app as application
Este es mi service.py:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello(environ, start_response):
status = '200 OK'
output = "Hello"
response_headers = [('Content-type', 'text/plain'), ('Content-length', str(len(output)))]
start_response(status, response_headers)
return output
if __name__=='__main__'
app.run()
¿Necesito mantener mis archivos .wsgi también en el directorio / var / www / html? ¿O pueden ir en una carpeta diferente? Puedo ver que puede haber algún conflicto entre el mensaje que estoy enviando al servidor ('Hola') y los archivos estáticos que ya están en el directorio / var / www / html /. Es por eso que intenté establecer el alias en/test
pero eso tampoco funcionó.
Solo quiero que mi aplicación Flask atienda solicitudes GET / POST y quiero que apache sirva todos los archivos estáticos.