Я установил WordPress на свой сервер, и он работает нормально. Теперь я пытаюсь настроить другое приложение, созданное с использованием Flask, на том же сервере. Это то, что у меня .conf
файл выглядит сейчас:
<Directory /var/www/html/mydomain.com/public_html>
Require all granted
</Directory>
<VirtualHost 127.0.0.1:80 *:80>
ServerName mydomain.com
ServerAlias www.mydomain.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/mydomain.com/public_html
WSGIDaemonProcess test user=www-data group=group-wp threads=5
WSGIScriptAlias /newsletter /var/www/newsletter.wsgi
<Directory /var/www/html/mydomain.com/public_html/newsletter>
WSGIProcessGroup test
WSGIApplicationGroup %{GLOBAL}
Require all granted
</Directory>
ErrorLog /var/www/html/mydomain.com/logs/error.log
CustomLog /var/www/html/mydomain.com/logs/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =www.mydomain.com [OR]
RewriteCond %{SERVER_NAME} =mydomain.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
Приложение My Flask test.py
выглядит так
import sqlite3
from flask import Flask, g, jsonify, abort, request
app = Flask(__name__)
@app.route('/', methods=['GET'])
def index():
return "testing"
@app.route('/api/list', methods=['GET'])
def list_all():
return "also testing"
if __name__ == '__main__':
app.run()
и мой newsletter.wsgi
файл выглядит так:
import sys
sys.path.insert(0, '/var/www/newsletter')
from test import app as application
Я установил libapache2-mod-wsgi-py3
для запуска сценария wsgi, но я получаю страницу 404 на mydomain.com/newsletter
, mydomain.com/api_list
, mydomain.com/newsletter/api_list
и все другие комбинации, которые я пробовал. Должен ли я меняться .htaccess
? Должно ли мое приложение Flask находиться в том же каталоге, что и WordPress? Я уже пробовал переместить каталог приложения в public_html
и добавив правило RewriteCond %{REQUEST_URI} !^/newsletter
к .htaccess
файл, но он просто показывает .py
и .wsgi
файлы, не запускающие скрипт.
Вот как я это решил:
.conf
файл. certbot
(из Let's Encrypt) автоматически создает новый .conf
с новыми настройками SSL apt-get
и переустановил mod-wsgi с pip3 install mod_wsgi
. Подробнее Вот