使用 Django 和 Apache 的多个站点 - 无法让两者同时工作



我们在Django中有两个站点,一个是另一个的分支(相同的项目名称),所以我们在mod_wsgi中有错误的settings.py加载问题。因此,我们将mod_wsgi置于Daemon模式,希望能将两者分开,这样就不会发生这种情况。

当另一个被禁用或配置不正确时,一个工作正常。一旦第二个站点被制作成应该工作的,它就不工作了,它会把第一个站点带下来,给我们一个Apache 500错误。

下面是其中一个的conf.d文件:

WSGIDaemonProcess {siteName}.co.uk python-home=/var/www/vhosts/{siteName}.co.uk/venv python-path=/var/www/vhosts/{siteName}.co.uk/website/{djangoProject}
WSGIProcessGroup {siteName}.co.uk
WSGIScriptAlias / /var/www/vhosts/{siteName}.co.uk/website/{djangoProject}/{djangoProject}/wsgi.py
WSGIPythonHome /var/www/vhosts/{siteName}.co.uk/venv
WSGIPythonPath /var/www/vhosts/{siteName}.co.uk/website/{djangoProject}
<VirtualHost *:80>
ServerName {siteName}.co.uk
ServerAlias www.{siteName}.co.uk

<Directory /var/www/vhosts/{siteName}.co.uk/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
</Directory>
<Directory /var/www/vhosts/{siteName}.co.uk/website/{djangoProject}/{djangoProject}>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
CustomLog /var/log/httpd/{siteName}.co.uk-access.log combined
ErrorLog /var/log/httpd/{siteName}.co.uk-error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
</VirtualHost>

注意:这两个站点的文件是相同的,除了{siteName}则不同。{djangoProject}是相同的,因为其中一个是另一个的修改克隆。

它还在apache日志中给出了mysite.log文件的权限被拒绝的错误,这个文件对于两个站点都已经通过chmod设置了权限777,但是这个错误仍然存在。

这个错误看起来很奇怪,因为当一个被配置为运行时,它工作正常,这个错误只发生在两个站点试图同时运行时。

谁知道我们可能错过了什么?更新

找出mysite.log的东西,这是一个不正确的配置为其中一个网站。然而,现在这个问题已经解决了。两个域名都指向站点2,因为站点2加载和工作在站点2上,但域1显示站点2而不是站点1

  1. apache mod_wsgi只能为所有vhost处理一个虚拟环境,所以WSGIPythonHome只能定义一次
  2. 所有其他WSGIxxx定义都是针对每个虚拟主机的,因此需要放在虚拟主机语句中:
WSGIPythonHome /var/www/vhosts/venv
<VirtualHost *:80>
WSGIDaemonProcess {siteName}.co.uk python-home=/var/www/vhosts/{siteName}.co.uk/venv python-path=/var/www/vhosts/{siteName}.co.uk/website/{djangoProject}
WSGIProcessGroup {siteName}.co.uk
WSGIScriptAlias / /var/www/vhosts/{siteName}.co.uk/website/{djangoProject}/{djangoProject}/wsgi.py
WSGIPythonPath /var/www/vhosts/{siteName}.co.uk/website/{djangoProject}

...

最新更新