在 apache 中将 wsgi 设置为别名路径时出现问题

Issue when setting-up wsgi as an alias path in apache

注意:这个问题与“Add a prefix to all Flask routes”不同,因为我试图在 apache 级别解决这个问题。此外,针对烧瓶路线的建议修复无效!

this post 开始,我正在尝试将 apache 设置为默认提供 PHP 文件,但将给定的别名(即 /flaskapp)指向 wsgi 路径. wsgi 文件依次将请求路由到 python flask 应用程序。

这是我正在尝试的 apache 配置(在 000-default.conf 下):

<VirtualHost *:80>
        ServerName localhost
        ServerAdmin webmaster@localhost

        Alias / /var/www/html/
        <Directory "/var/www/html">
            Order Deny,Allow
            Allow from all
            Require all granted
        </Directory>

        WSGIScriptAlias /flaskapp "/var/www/flaskapp/deploy.wsgi"
        <Directory /var/www/flaskapp>
                 Options +ExecCGI
                 Order allow,deny
                 Allow from all
        </Directory>
</VirtualHost>

在执行 service apache2 restart 之后,我发现对 http://myip/flaskapp 的请求会导致 404 错误。其他一切正常。

到目前为止我尝试过的事情:

我哪里出错了?

而不是:

    Alias / /var/www/html/
    <Directory "/var/www/html">
        Order Deny,Allow
        Allow from all
        Require all granted
    </Directory>

使用:

    DocumentRoot /var/www/html/
    <Directory "/var/www/html">
        Order Deny,Allow
        Allow from all
        Require all granted
    </Directory>

将“/”与 Alias 一起使用优先于其他所有内容,包括 mod_wsgi 在子 URL 处拦截请求的能力。因此,对于网站根目录下的内容,您需要使用 DocumentRoot 指令。