使用apache在子目录中运行Flask网站

Dam*_*n T 5 python apache flask

我在个人服务器上使用了apache,并且试图运行一个由Silexon 制作的“主要”网站,www.mydomain.com/以及另一个使用Flaskon 制作的网站www.mydomain.com/something

按照Flask我的官方网站(http://flask.pocoo.org/docs/deploying/mod_wsgi/)的说明,我使用mod_wsgi 运行该网站。

它工作正常,可以通过访问我的网站www.mydomain.com/something,但是当我返回时,www.mydomain.com/会收到Flask404错误消息。

我已经尝试检查apache有关虚拟主机的文档,但我无法理解,这是我当前的'sites-enabled/defaults'配置文件:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        WSGIDaemonProcess bc user=bc group=bc threads=5
        WSGIScriptAlias / /var/www/bc/bc.wsgi
        <Directory /var/www/bc>
                   WSGIProcessGroup bc
                   WSGIApplicationGroup %{GLOBAL}
                   Order deny,allow
                   Allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

我的/var/www目录看起来像这样:

./index.php

./bc/

./bc/index.py
Run Code Online (Sandbox Code Playgroud)

我如何才能使python网站只能在www.mydomain.com/something上运行,并让PHP一个在www.mydomain.com/上运行?

Daz*_*all 5

第一个参数WSGIScriptAliasurl path,通过指定WSGIScriptAlias / <foo>您告诉 apache 将所有请求发送到 WSGI 应用程序。尝试WSGIScriptAlias /something <foo>