certbot apache错误“名称重复以前的WSGI守护程序定义。”

问题描述 投票:0回答:4

在我的Ubuntu 16.04服务器中,我有一个Apache Conf File在

/etc/apache2/sites-enabled/000-default.conf
中,看起来像这样(缩写):

WSGIApplicationGroup %{GLOBAL}

<VirtualHost *:80>
    ServerName example.com
    WSGIDaemonProcess myprocess user=ubuntu group=ubuntu threads=10 home=/home/ubuntu/myapp
    WSGIProcessGroup myprocess
    ...
</VirtualHost>

它在HTTP模式下运行良好,但是当我运行

$ sudo certbot --apache
设置HTTP时,它会失败,而错误
Syntax error on line 7 of /etc/apache2/sites-enabled/000-default.conf: Name duplicates previous WSGI daemon definition.
行7是以
WSGIDaemonProcess
.

的开始。
apache ubuntu-16.04 mod-wsgi lets-encrypt certbot
4个回答
54
投票
事实证明,如果我的apache conf文件

000-default.conf

<VirtualHost *:80>...</VirtualHost>000-default-le-ssl.conf
<VirtualHost *:443>...</VirtualHost>Name duplicates previous WSGI daemon definition
WSGIDaemonProcess myprocess...
WSGIDaemonProcess

出现错误,因为
BothApacheconf文件具有相同的行定义WSGIApplicationGroup %{GLOBAL} WSGIDaemonProcess myprocess user=ubuntu group=ubuntu threads=10 home=/home/ubuntu/myapp WSGIProcessGroup myprocess <VirtualHost *:80> ServerName example.com ... </VirtualHost> <VirtualHost *:443> ServerName example.com ... </VirtualHost>
。  这似乎是一个已知的certbotbug
我发现的解决方法是指定两个virtualhosts(80和443)在same

same

Apacheconf File(以便CertBot不会创建第二个文件),并在两个VirtualHosts之外定义WSGIDaemonProcess,这样:

VirtualHost

错误说,您不能多次使用相同的名称。它们对于整个Apache实例必须是唯一的。


20
投票
ServerName

中同时拥有80和443实例,则不应在443个实例中创建一个单独的

WSGIDaemonProcess
。在80个实例中定义它,并通过名称引用443实例。这样,您在80和443实例之间共享相同的守护程序过程组。

VirtualHost


让Cerbot为您执行此操作并避免发生错误而不更改配置结构的方法是评论有问题的线路。  Certbot成功后,您将需要手动编辑配置文件,以取消点击行,并确保为新的HTTPS配置选择一个新的守护程序进程名称。  因此,在这种情况下,您应该:
ServerName
的前面在行的前面输入#。
runcerbot再次要求它为您重新安装现有的证书。  这次将成功。
原始配置文件和未点击wsgidaemonprocess line。

EDITCERTBOT为您创建的新配置文件和未注释(Certbot将为您复制整个原始配置文件,包括任何注释)。 您需要在此文件中重命名守护程序进程,因为您不能在两个不同的虚拟主机中使用相同的名称;我建议仅在安全的名称中添加一个
WSGIApplicationGroup %{GLOBAL}
WSGIRestrictEmbedded On

<VirtualHost *:80>
ServerName example.com
WSGIDaemonProcess myprocess threads=10 home=/home/ubuntu/myapp
WSGIProcessGroup myprocess
...
</VirtualHost>

<VirtualHost *:443>
ServerName example.com
WSGIProcessGroup myprocess
...
</VirtualHost>

18
投票
->

s

  1. Restartapache.
    
        
  2. 一个旧线程,但可以在2025年使用Ubuntu 24.04的解决方案。
  3. 问题是由于certbot
  4. bug。
  5. format conf file
  6. name
  7. (或
    names
    )as:
    /etc/apache2/sites-enabled/000-default.conf
    solution从:
  8. Https://github.com/certbot/certbot/issues/8373#issuecomment-934030469

0
投票
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.