名称重复以前的WSGI守护程序定义

时间:2016-09-04 13:04:12

标签: python django apache mod-wsgi

我正在更改网站的域名。在一段时间内,我希望旧域名和新域名指向该站点。我正在运行Python Django网站。

我原来的Apache2配置工作正常,基础是:

<VirtualHost *:80>
        ServerAdmin name@gmail.com
        ServerName originalsite.co.uk
        ServerAlias www.originalsite.co.uk
        DocumentRoot /var/www/originalsite
        WSGIDaemonProcess originalsite python-path=/var/www/originalsite:/var/www/originalsite/env/lib/python2.7/site-packages
        WSGIProcessGroup originalsite
        WSGIScriptAlias / /var/www/originalsite/originalsite/wsgi.py
        ...
</VirtualHost>

我设置了一个新的配置文件,只有以下更改:

    ServerName newsite.co.uk
    ServerAlias www.newsite.co.uk

我收到以下错误:

  

名称重复以前的WSGI守护程序定义。

我该如何解决这个问题?谢谢你的帮助

5 个答案:

答案 0 :(得分:12)

更改originalsite名称

不在目录地址中,只是名称

WSGIDaemonProcess somethingelse python-path=/var/www/originalsite:/var/www/originalsite/env/‌​lib/python2.7/site-p‌​ackages

WSGIProcessGroup somethingelse

答案 1 :(得分:6)

如果在使用certbot命令安装多个“让我们加密证书”时遇到此问题,则可能是由于certbot中的某些错误所致。如here所述,您可以通过快速的解决方法进行评论

WSGIScriptAlias 
WSGIDaemonProcess 
WSGIProcessGroup

运行certbot命令,然后删除注释。

答案 2 :(得分:4)

错误的原因是因为mod_wsgi守护程序进程组的名称在整个Apache安装中必须是唯一的。不能在不同的VirtualHost定义中使用相同的守护程序进程组名称。在确定在某些情况下引用守护程序进程组时,这是必要的,以避免冲突。

答案 3 :(得分:2)

我通过在 /etc/apache2/sites-enabled/000-default.conf

中注释以下 3 行解决了这个问题
# WSGIDaemonProcess 
# WSGIProcessGroup 
# WSGIScriptAlias

然后重新加载/重启 Apache2。

我将它们保留在 /etc/apache2/sites-enabled/default-ssl.conf 中,因为它在 HTTP(非 SSL)和 HTTPS (SSL) 中重复

答案 4 :(得分:0)

我对Apache2配置有同样的问题。 就我而言,我在/ etc / apache2 / sites-enabled中复制了000-default.conf文件。

首先,我在Linux中查找“ WSGIDaemon”字符串:

grep -iRl "WSGIDaemon" ./

第二次分析每一行。我在/etc/apache2/sites-enabled/000-default-copy.conf上找到了重复的文件。删除后,检查语法:

sudo apachectl configtest

返回“语法正确”。我花了这4个小时...我希望有人用这个:)