WSGI文件权限问题[重复]

Posted

技术标签:

【中文标题】WSGI文件权限问题[重复]【英文标题】:WSGI file permissions issue [duplicate] 【发布时间】:2020-04-24 04:41:24 【问题描述】:

我已经阅读了有关类似问题的帖子,但它们似乎都略有不同,因此这篇帖子。

我有一个网站(例如 example.com)的域,它工作得很好。我现在正在创建一个子域(例如 sub.example.com)带有 Flask 应用程序(主域不是 Flask 应用程序),这也是连接到 SQLite 数据库(在同一文件夹中)。

为子域设置A记录后,访问子域地址时,我在浏览器中收到以下错误消息:“禁止访问。您无权访问此资源。”

我做错了什么?

Apache 的错误日志说:

[Mon Jan 06 15:48:21.300079 2020] [authz_core:error] [pid 12194] [client xxx.xxx.xxx.xxx:xxxxx] AH01630: client denied by server configuration: /home/user/show/application.wsgi

包含主 Flask 文件 (application.py) 的根文件夹的文件夹权限是drwxr-xr-x(即755),所有者和组是我的用户名。该文件夹以及静态和模板文件夹中的所有文件都是rwxr-xr-x(即755)。由于 Apache 错误日志提到了 application.wsgi,我仔细检查了它的权限,它们也是 755

这是 application.wsgi:

#!/usr/bin/python
import sys
import logging
logging.basicConfig(stream=sys.stderr)
sys.path.insert(0,"/home/user/show/")

from show import app as application
application.secret_key = '*******'

(作为脚注,我是否可能需要在环境变量中设置密钥 - 这是问题所在吗?如果是这样,在这种情况下我该怎么做?)

这是子域的 .conf:

<VirtualHost *:80>
    ServerName sub.example.com
    ServerAdmin admin@example.com
    WSGIScriptAlias / /home/user/show/application.wsgi
    <Directory /home/user/show/>
        Order allow,deny
        Allow from all
    </Directory>
    Alias /static /home/user/show/static
    <Directory /home/user/show/static/>
        Order allow,deny
        Allow from all
    </Directory>
    ErrorLog $APACHE_LOG_DIR/error.log
    LogLevel warn
    CustomLog $APACHE_LOG_DIR/access.log combined
</VirtualHost>

【问题讨论】:

【参考方案1】:

在这里找到解决方案:

Apache2: 'AH01630: client denied by server configuration'

替换所有实例

Order allow,deny
Allow from all

Require all granted

【讨论】:

以上是关于WSGI文件权限问题[重复]的主要内容,如果未能解决你的问题,请参考以下文章

无法在 mod_wsgi 应用程序中写入文件:权限被拒绝

权限被拒绝 django 静态文件

安全的 django 文件权限

Apache 说打开文件读取时出错:权限被拒绝

使用nsfilemanager设置文件夹的权限[重复]

如何在 Ubuntu 中更改文件权限 [重复]