Como fazer com que o apache sirva arquivos estáticos no Flask webapp
Estou recebendo um erro interno de 500 ao tentar fazer o Apache servir meus arquivos estáticos.
O aplicativo será hospedado localmente (não em frente a www). Não haverá DNS para resolver um nome 'www.domain.com'. Quero poder acessar o aplicativo digitando o endereço IP do servidor quando estiver nessa rede.
Este é o meu arquivo httpd.conf (estou no RHEL):
<Directory /var/www/testapp>
Order allow,deny
Allow from all
</Directory>
WSGIScriptAlias / /var/www/testapp/service.wsgi
Se eu alterar o WSGIScriptAlias paraWGSIScriptAlias /test /var/www/testapp/service.wsgi
então eu posso ver meus arquivos estáticos quando digito o IP, mas ainda não consigo acessar o script service.py em [IP] / test.
De qualquer forma, desejo poder atender a todas as solicitações GET / POST com o script service.py, para que meu alias comece em/
, não em outro lugar.
Todos os meus arquivos estáticos estão em / var / www / html (o Apache exibia esses arquivos automaticamente antes de eu mexer com o httpd.conf, agora estou conseguindo 500).
Este é o meu service.wsgi:
import sys
sys.path.insert(0, '/var/www/testapp')
from service import app as application
Este é o meu 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()
Preciso manter meus arquivos .wsgi no diretório / var / www / html também? Ou eles podem ir para uma pasta diferente? Percebo que pode haver algum conflito entre a mensagem que estou enviando para o servidor ('Hello') e os arquivos estáticos que já estão no diretório / var / www / html /. Por isso, tentei definir o alias para/test
mas isso também não funcionou.
Eu só quero que meu aplicativo Flask atenda às solicitações GET / POST e que o apache sirva todos os arquivos estáticos.