Как заставить Apache обслуживать статические файлы в веб-приложении Flask
Я получаю внутреннюю ошибку 500 при попытке заставить Apache обслуживать мои статические файлы.
Приложение будет размещено локально (не с обращением к www). Не будет DNS для разрешения имени «www.domain.com». Я хочу иметь возможность доступа к приложению, введя IP-адрес сервера, когда я нахожусь в этой сети.
Это мой файл httpd.conf (я на RHEL):
<Directory /var/www/testapp>
Order allow,deny
Allow from all
</Directory>
WSGIScriptAlias / /var/www/testapp/service.wsgi
Если я изменю WSGIScriptAlias наWGSIScriptAlias /test /var/www/testapp/service.wsgi
затем я могу просмотреть свои статические файлы при вводе IP-адреса, но все еще не могу получить доступ к сценарию service.py из [IP] / test.
В любом случае я хочу иметь возможность обслуживать все запросы GET / POST с помощью скрипта service.py, поэтому я хочу, чтобы мой псевдоним начинался с/
, а не какое-то другое место.
Все мои статические файлы находятся в / var / www / html (Apache автоматически отображал эти файлы, прежде чем я испортил httpd.conf, теперь я просто получаю 500).
Это мой сервис.
import sys
sys.path.insert(0, '/var/www/testapp')
from service import app as application
Это мой 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()
Нужно ли мне хранить мои файлы .wsgi в каталоге / var / www / html? Или они могут пойти в другую папку? Я вижу, что может быть некоторый конфликт между сообщением, которое я отправляю на сервер («Hello»), и статическими файлами, которые уже находятся в каталоге / var / www / html /. Вот почему я попытался установить псевдоним/test
но это тоже не сработало.
Я просто хочу, чтобы мое приложение Flask обслуживало запросы GET / POST и чтобы apache обслуживал все статические файлы.