如何在 apache windows 10 中使用烧瓶修复错误 500

Posted

技术标签:

【中文标题】如何在 apache windows 10 中使用烧瓶修复错误 500【英文标题】:how fix error 500 with flask in apache windows 10 【发布时间】:2021-07-22 06:02:04 【问题描述】:

我正在尝试在 apache24 上运行一个简单的烧瓶应用程序,但最后出现内部服务器错误,我将附上我的配置文件和代码。

httpd.conf

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

在文件末尾我添加这个:

AddHandler wsgi-script .wsgi
ScriptInterpreterSource Registry-Strict

LoadFile "c:/program files/python39/python39.dll"
LoadModule wsgi_module "c:/program files/python39/lib/site-packages/mod_wsgi/server/mod_wsgi.cp39-win_amd64.pyd"
WSGIPythonHome "c:/program files/python39"

httpd-vhost.conf:

<VirtualHost *>
    WSGIScriptAlias /SISPRAA "C:/Apache24/htdocs/SISPRAA/main.wsgi"
    <Directory "C:/Apache24/htdocs/SISPRAA">
        Require all granted
        Options Indexes FollowSymLinks Includes ExecCGI
    </Directory>
</VirtualHost>

这是我的 app.py

from flask import Flask, render_template
from flask_material import Material
from flask_fontawesome import FontAwesome
from pathlib import Path
from flask import send_file
import os
import re
import datetime
from lib.pyReportInfinited import init
from flask import jsonify 


app = Flask(__name__)
Material(app)
fa = FontAwesome(app)
downloads_path = str(Path.home() / "Downloads")

@app.route('/')
def index():
    return render_template('index.html')



@app.route('/makeReport', methods=["GET", "POST"])
def makeReport():

    #print ("init..")
    init()
    return jsonify(msg='end')


if __name__ == "__main__":
    app.run()

这是 main.wsgi:

import sys
sys.path.insert(0, "C:/Apache24/htdocs/SISPRAA/")

from app import index as application

此结果错误 500 内部服务器:

enter image description here

如果我没有找到最后一行错误:

enter image description here

如果我只导航到本地主机,没关系:

enter image description here

apache 错误日志

AH00558: httpd.exe: Could not reliably determine the server's fully qualified domain name, using fe80::d972:78ad:5f99:ed39. Set the 'ServerName' directive globally to suppress this message
[Wed Apr 28 19:11:52.022705 2021] [core:warn] [pid 8264:tid 680] AH00098: pid file C:/Apache24/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run?
[Wed Apr 28 19:11:52.022705 2021] [mpm_winnt:notice] [pid 8264:tid 680] AH00455: Apache/2.4.46 (Win64) mod_wsgi/4.7.1 Python/3.9 configured -- resuming normal operations
[Wed Apr 28 19:11:52.022705 2021] [mpm_winnt:notice] [pid 8264:tid 680] AH00456: Apache Lounge VS16 Server built: Mar 27 2021 11:42:37
[Wed Apr 28 19:11:52.022705 2021] [core:notice] [pid 8264:tid 680] AH00094: Command line: 'C:\\Apache24\\bin\\httpd.exe -d C:/Apache24'
[Wed Apr 28 19:11:52.022705 2021] [mpm_winnt:notice] [pid 8264:tid 680] AH00418: Parent: Created child process 15872
AH00558: httpd.exe: Could not reliably determine the server's fully qualified domain name, using fe80::d972:78ad:5f99:ed39. Set the 'ServerName' directive globally to suppress this message
AH00558: httpd.exe: Could not reliably determine the server's fully qualified domain name, using fe80::d972:78ad:5f99:ed39. Set the 'ServerName' directive globally to suppress this message
[Wed Apr 28 19:11:52.428805 2021] [mpm_winnt:notice] [pid 15872:tid 784] AH00354: Child: Starting 64 worker threads.
[Wed Apr 28 19:11:57.598808 2021] [wsgi:error] [pid 15872:tid 1288] [client ::1:54512] mod_wsgi (pid=15872): Exception occurred processing WSGI script 'C:/Apache24/htdocs/SISPRAA/main.wsgi'.
[Wed Apr 28 19:11:57.598808 2021] [wsgi:error] [pid 15872:tid 1288] [client ::1:54512] TypeError: index() takes 0 positional arguments but 2 were given\r

谁能帮帮我?请

【问题讨论】:

【参考方案1】:

尝试使用以下命令测试您的 httpd.conf 文件:

httpd -t -f /path/to/httpd.conf

如果您在 Windows 操作系统中使用反斜杠而不是斜杠(\ 不是 /)来识别文件系统中的某些路径,效果会更好。

【讨论】:

好的,C:\Apache24\bin>httpd.exe -t -f /C:/Apache24/conf (20024)给定的路径格式错误或包含无效字符:AH00532:配置文件路径无效/C:/Apache24/conf say access denied, C:\Apache24\bin>httpd.exe -t -f C:/Apache24/conf httpd.exe: 无法打开配置文件 C:/Apache24/conf: Acceso denegado . 解决方案:从app导入app作为app.py中的应用

以上是关于如何在 apache windows 10 中使用烧瓶修复错误 500的主要内容,如果未能解决你的问题,请参考以下文章

Windows 10、Xampp、Apache 无法启动,端口 80 正在使用中

我的 Windows 10 升级后 Apache 无法启动

如何在 Windows 上为 apache 2.4 和 python 3.4 安装 mod_wsgi?

Windows 7 下如何配置PHP网站运行环境

Apache Server (xampp) 无法在 Windows 10(端口 80)上运行

如何在Windows下配置搭建PHP环境