繁体   English   中英

403 禁止使用带有 WSGI 和 Apache2.4 的 flask 应用程序

[英]403 forbidden using a flask app with WSGI and Apache2.4

我正在尝试在我们网站的子目录中运行一个破折号应用程序。 我在尝试访问网站时收到 403 禁止。 /etc/httpd/logs/ssl_error_logs我收到错误:

[Tue Jan 03 13:53:42.973046 2023] [autoindex:error] [pid 50576] [client 134.94.71.5:60550] AH01276: Cannot serve directory /var/www/Typesetter/appname/: No matching DirectoryIndex (index.html,index.php,index.php) found, and server-generated directory index forbidden by Options directive

我想我的权限或虚拟主机设置可能有问题。 但我不知道出了什么问题。

我想在以下位置运行仪表板:our-group.our-uni.com/appname

服务器在centos7上运行。

我有一个包含生化信息的数据文件夹,可以提供给/var/www/html/appname/data/中的用户,如果我 go 到our-group.our-uni.com/appname/data/datapoint1.pt ,我可以从中下载数据our-group.our-uni.com/appname/data/datapoint1.pt

因为这有效,我也可以毫无问题地放一个 index.html/index.php 页面,我认为我的指向 WSGI 的虚拟主机设置不正确?

错误提示无法提供目录/var/www/Typesetter/appname/ ,但此目录是指向/var/www/html/appname/的符号链接。

虚拟主机文件appname.conf位于/etc/httpd/conf.d/

<VirtualHost *:80>
        ServerName our-group.our-uni.com

        DocumentRoot /var/www/html/appname

        Errorlog /var/www/html/appname/appname-error.log

        Alias /topenzyme /var/www/html/topenzmye

        WSGIDaemonProcess appname user=apache group=apache threads=5 python-path=/var/www/html/appname/appname-env
        WSGIScriptAlias /appname /var/www/html/appname/testapp.wsgi

        <Directory /var/www/html/appname>
            WSGIProcessGroup appname
            WSGIApplicationGroup %{GLOBAL}
            Options Indexes FollowSymLinks ExecCGI
            Require all granted
        </Directory>
</VirtualHost>

我也尝试更改为<Directory /var/www/typesetter/appname> ,但这也没有用。

/var/www/html/appname/testapp.wsgi的内容:

import sys, os
sys.path.insert(0, '/var/www/html/appname')
from testapp import app as application

/var/www/html/appname/testapp.py的内容:

from flask import Flask
app = Flask(__name__)

@app.route('/topenzyme/')
def main():
    return 'Hello world'

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

权限设置:

-rwxr-xr-x.  1 apache    apache      148 Jan  3 13:37 testapp.py
-rwxr-xr-x.  1 apache    apache      100 Jan  3 13:38 testapp.wsgi

我也试过 777,但据我所知,755 权限应该足够了吗?

如果我做httpd -M我得到wsgi_module (shared) wsgi 模块应该可用。

我尝试了其他具有类似问题的帖子中的各种虚拟主机配置。

我真的不确定为什么这不起作用。

我的配置设置有什么问题还是其他原因?

发现了问题。 我错误地配置了我的 Apache 设置。

因为我们已经在域上托管了一个网站,所以我不应该尝试为子目录设置虚拟主机。 据我所知,这仅适用于设置(子)域。 通过这种设置结构,appname.conf 文件被添加到已经存在的虚拟主机配置中。

相反/etc/httpd/conf.d/appname.conf现在是:

WSGIDaemonProcess appname user=apache group=apache threads=5 python-path=/var/www/html/appname/appnameenv
WSGIProcessGroup appname 
WSGIApplicationGroup %{GLOBAL}
WSGIScriptAlias /appname /var/www/html/appname/testapp.wsgi

<Directory /var/www/html/appname>
        Options FollowSymLinks
        AllowOverride  All
        Require all granted
        allow from all
</Directory>

这将 wsgi 应用程序正确地链接到我想要的子目录位置(our-group.our-uni.com/appname)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM