使用FLASK应用程序和mod_wsgi可以获得403左右的禁止错误

2024-10-03 23:28:36 发布

您现在位置:Python中文网/ 问答频道 /正文

在一个又一个教程之后,我尝试了一百万种不同的配置,但仍然无法让我的flask应用程序在mod_wsgi下运行:

我的WSGI脚本

#!/usr/bin/python
import sys
import logging
import site

logging.basicConfig(stream=sys.stderr)
site.addsitedir('/server/FLASKENV/lib/python3.9/site-packages/')
sys.path.insert(0,"/server/FLASKAPPS/PPSPortal/restapi/")
from main.py import app as application
application.secret_key="REDACTED"

Apache 2配置:

VirtualHost *:80>
    ServerName myserver.com
    ServerAdmin me@myserver.com
    WSGIScriptAlias / /server/FLASKWSGI/ppsportal.wsgi
    WSGIDaemonProcess ppsrestapi user=www-data group=www-data threads=5 python-home=/server/FLASKENV
    <Directory /server/FLASKAPPS/PPSPortal/restapi>
            Options FollowSymLinks
            AllowOverride None
            Require all granted
    </Directory>
    ErrorLog /server/FLASKAPPS/PPSPortal/restapi/logs/error.log
    LogLevel warn
    CustomLog /server/FLASKAPPS/PPSPortal/restapi/logs/access.log combined
</VirtualHost>

这些应用程序所在的整个目录都属于我的www-data:www-data,我得到的错误是403禁止

我在error.log中得到的信息:

[Sat Aug 14 09:22:57.441200 2021] [authz_core:error] [pid 24121:tid 140166979081984] [client 192.168.0.15:41200] AH01630: client denied by server configuration: /server/FLASKWSGI/ppsportal.wsgi


Tags: importlogrestapi应用程序wsgidataserverlogging
1条回答
网友
1楼 · 发布于 2024-10-03 23:28:36

听起来Apache似乎没有访问该对象的权限。确保为此特定原因设置了帐户,并允许文件访问此帐户。然后使用chown设置该用户对这些文件的访问权限

在开发环境中,例如Apache帐户。 chown -R wwwrun:www /home/user1/Develop/

或者你可以给每个人访问权限,但我不建议这样做。 chmod 777 -R /home/user1/Develop/

如果这不起作用,您可能需要手动允许访问apache配置中的wsgi文件

应该是这样的

WSGIDaemonProcess flask_dbadmin user=wwwrun group=www threads=5
<VirtualHost *:80>

   ........

   <Directory /home/user1/Develop/ >
       Order allow,deny
       Allow from all
    </Directory>

   <Files flask_dbadmin.wsgi>
       Order allow,deny
       Allow from all
   </Files>
</VirtualHost>

-信用证:@eandersson

注:不幸的是,我没有足够的声誉来投票认为这个问题是重复的

相关问题 更多 >