请求协助:Flask应用部署至Apache时报Error 10013权限错误
无法通过mod_wsgi在Apache部署Flask应用,报错Error 10013
环境信息
- Windows 11 x64
- Python 3.10.9、Flask 2.2.2
- Apache 2.4.54、mod_wsgi 4.9.4
- 杀毒软件:ESET 10.0.2045.0
问题描述
尝试通过mod_wsgi将Flask HelloWorld应用部署到Apache服务器时,始终报错:Error 10013:An attempt was made to access a socket in a way forbidden by its access permissions。应用可在Werkzeug和WSGIserver正常运行,但部署到Apache后无法启动。
Apache httpd.conf配置
LoadFile "C:/users/pvachal/appdata/local/programs/python/python310/python310.dll" LoadModule wsgi_module "C:/users/pvachal/appdata/local/programs/python/python310/lib/site-packages/mod_wsgi/server/mod_wsgi.cp310-win_amd64.pyd" WSGIPythonHome "C:/users/pvachal/appdata/local/programs/python/python310" #WSGIDaemonProcess flaskapp python-path="c:/users/pvachal/appdata/local/programs/python/python310/lib/site-packages" <VirtualHost *:8000> # DocumentRoot "c:/users/pvachal/documents/projekty/flask_app_hello_world" <Directory c:/users/pvachal/documents/projekty/flask_app_hello_world> <IfVersion < 2.4> Order allow,deny Allow from all </IfVersion> <IfVersion >= 2.4> Require all granted </IfVersion> </Directory> WSGIScriptAlias / "c:/users/pvachal/documents/projekty/flask_app_hello_world/app.wsgi" </VirtualHost>
注:WSGI模块已成功加载,VirtualHost监听端口为8000;未加载WSGI模块时Apache可正常显示默认页面。
已尝试的排查操作
- 确认端口8000未被占用
- 禁用Internet Connection Sharing (ICS)服务,无变化
- 禁用ESET防火墙及网络保护,无变化
- 通过Python socket模块连接localhost:8000,出现
WinError 10061:目标机器主动拒绝连接
Flask应用代码(app.py)
from flask import Flask, render_template app = Flask(__name__) HOST = "localhost" PORT = 8000 @app.route("/") def home(): return render_template("index.html") if __name__ == "__main__": app.run(debug=True, host=HOST, port=PORT)
注:index.html为仅包含HelloWorld标题的简单页面。
app.wsgi代码
#! C:/Users/pvachal/AppData/Local/Programs/Python/Python310/python.exe import sys sys.path.insert(0, "c:/users/pvachal/documents/projekty/flask_app_hello_world") activate_this = "c:/users/pvachal/documents/projekty/flask_app_hello_world/venv/scripts/activate_this.py" with open(activate_this) as file_: exec(file_.read(), dict(__file__=activate_this)) from app import app as application
提问
已排查一周仍未解决,推测可能与网络权限相关,请问问题出在哪里?如何成功将Flask应用部署到Apache服务器?
内容的提问来源于stack exchange,提问作者Petr
相关产品推荐
相关产品推荐

