Как заставить 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 обслуживал все статические файлы.

Ответы на вопрос(1)

Ваш ответ на вопрос