Apache: WSGI не маршрутизируетсяApache

Ответить
Anonymous
 Apache: WSGI не маршрутизируется

Сообщение Anonymous »

Я пытаюсь использовать WSGI с URL-адресом, который мне нужен для отправки POST под Apache 2 (с использованием flask). Я могу запустить свой .wsgi независимо от Apache (

Код: Выделить всё

python cfg.wsgi
), и он правильно обрабатывает запросы GET и POST (проверено с помощью Curl), но не работает при запуске под Apache: запрос GET Curl к соответствующему URL-адресу (

Код: Выделить всё

/watchdog.cfg
) возвращает «404 Not Found».
Apache загружает файл .wsgi (об этом говорится в журнале ошибок и отладочной печати в верхней части файла . wsgi появляется в журнале отладки), поэтому пути и интерпретаторы Python, скорее всего, верны; проблема, похоже, в том, что функция маршрутизации .wsgi не вызывается Apache (т. е. отладочная печать внутри функции приложения не отображается в журнале отладки, когда рассматриваемый URL-адрес (

Код: Выделить всё

/watchdog.cfg
)).
Мой файл Apache .conf:

Код: Выделить всё

DocumentRoot /home/http/
WSGIScriptAlias /watchdog.cfg /home/http/cfg.wsgi

AllowOverride none
Require all granted


Код: Выделить всё

apache2ctl -M | grep wsgi
возвращает «wsgi_module (shared)», поэтому я считаю, что в Apache установлен модуль WSGI. Файл watchdog.cfg имеет разрешения 0644, файл cfg.wsgi имеет разрешения 0755.
Мой файл cfg.wsgi:
Мой файл cfg.wsgi:

Код: Выделить всё

from flask import Flask, request, send_file
from os import path

FILE_NAME = 'watchdog.cfg'

application = Flask(__name__)

@application.route('/' + FILE_NAME, methods=['GET', 'POST'])
def cfg():
file_path = '/home/http/' + FILE_NAME;
if request.method == 'POST':
jsonString = request.json
with open(file_path, 'w') as f:
f.write(jsonString)
return "File updated successfully.", 200
elif request.method == 'GET':
if path.exists(file_path):
return send_file(file_path, mimetype='application/json')
else:
return "File not found.", 404

if __name__ == '__main__':
application.run(host='0.0.0.0', port=80)
Это в Raspbian Linux. Есть какие-нибудь предложения относительно того, почему моя функция маршрутизации не вызывается Apache?

Подробнее здесь: https://stackoverflow.com/questions/793 ... ot-routing
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Apache»