一台服务器上的两个 Django 应用程序

Two Django Apps on one server

所以我的任务是在一台服务器上安装两个应用程序 运行,我已经完成了,但我们认为我配置错误,因为 URL 访问应用程序和应用程序是错误的有不应该发生的奇怪错误。 (Foo/Bar 是网站上已经设置的初始项目,QMS 是我创建并尝试添加的应用程序)。可能值得注意的是,我尝试了其他格式,例如在第一个虚拟主机中声明了两个 WSGIScriptAlias',这有效但是给了我相同的 URL 格式。

URLs 旨在看起来像: 我的网站.com/foo/bar & 我的网站.com/QMS

然而目前的 URLS 是: 我的网站.com/foo/bar & 我的网站.com/foo/QMS

我们面临的错误是来自 Django 的 'ProgrammingError',它认为我们的数据库不存在,但我们已经证明它们存在并且我们已经尝试过迁移。无论如何到相关的配置。所以我目前的设置是这样的:

<VirtualHost _default_:443>
    ServerName web.mysite.com
    ServerAlias www.mysite.com
    WSGIScriptAlias /foo /var/www/html/foo/bar/wsgi.py

    DocumentRoot /var/www/html

    <Directory /var/www/html/foo/mediaroot>
        Require all granted
    </Directory>
</VirtualHost>

<VirtualHost _default_:443>
    ServerName web.mysite.com
    ServerAlias www.mysite.com
    WSGIScriptAlias /qms /var/www/html/qms/QMS/wsgi.py
    Alias /static /var/www/html/qms/staticroot/

    <Directory /var/www/html/qms>
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

感谢您的阅读,我非常感谢任何帮助,因为这让我很困惑!

编辑:可能有用的信息。在 /www/html/foo/ 目录中有主要的 QMS 文件夹(该目录包含视图和模型但不包含设置等。这可能与数据库问题有关,因为它在设置中声明。也使用 django调试器我们可以在 www.mysite.com/foo/QMS 上看到 运行 QMS 设置上的 foo/bar 设置)

所以我弄明白了,我想我会回答我的问题,以防其他人被困在同一个地方。所以我被愚弄的是我的同事提交了一个合并版本,允许我通过他们的项目访问我的 URL。这让我相信这是一个错误配置。

所以为了解决这个问题,我们从他的应用程序中删除了我的应用程序,然后重新上传,然后我将其添加到我的应用程序 wsgi.py 文件中:

path = "/var/www/html/qms"      # Make it the base folder of your app
if path not in sys.path:
    sys.path.append(path)

现在我们正在使用正确的 URLs,我的应用程序现在正在使用我的设置,这解决了我遇到的错误。