如何在 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 上为 apache 2.4 和 python 3.4 安装 mod_wsgi?