2017-12-13 25 views
0

が、私はこの(省略)のように見えた、/etc/apache2/sites-enabled/000-default.confでApacheのconfファイルを持っている:私は、HTTPSを設定するために$ sudo certbot --apacheを実行したときにCertbot Apacheエラー "名前が以前のWSGIデーモン定義と重複しています。"私のUbuntu 16.04サーバーで

WSGIApplicationGroup %{GLOBAL} 

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

これは、HTTPモードでは正常に動作します、しかし、それSyntax error on line 7 of /etc/apache2/sites-enabled/000-default.conf: Name duplicates previous WSGI daemon definition.エラーが発生します。7行目はWSGIDaemonProcessで始まる行です。

答えて

0

エラーが示すように、WSGIDaemonProcess定義に同じ名前を複数回使用することはできません。 Apacheインスタンス全体で一意でなければなりません。

ServerNameに対してVirtualHostのインスタンスが80と443の場合は、443インスタンスに別のWSGIDaemonProcessを作成しないでください。それを80インスタンスで定義し、443インスタンスからの名前で参照します。そうすれば同じServerNameVirtualHostの80と443のインスタンス間で同じデーモンプロセスグループを共有できます。

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> 
+0

私の主な問題は、CertBotをできるだけ自動的に実行する方法です。その目的のために、 ''の外に 'WSGIDaemonProcess'を定義することはできますか? P.S. 'mod_wsgi'自身のアーキテクトが私の質問に答えるのはかなりクールです! – Josh

+0

はい、あなたは '' VirtualHost''の外側に '' WSGIDaemonProcess''指示文を置くことができます。 –

0

それは私のApacheのconfファイル000-default.confのみ<VirtualHost *:80>...</VirtualHost>を宣言している場合、その後、Certbotはそれを複製し、<VirtualHost *:443>...</VirtualHost>を定義するために000-default-le-ssl.confと呼ば Apacheのconfファイルを作成することが判明しました。

両方 Apache confファイルの定義行が同じWSGIDaemonProcess myprocess...であるため、Name duplicates previous WSGI daemon definitionエラーが表示されます。これはknown Certbot bugのようです。

私が見つけた回避策はには(Certbot 2番目のファイルを作成しないように)同じ Apacheのconfファイルの両方で仮想ホスト(80および443)を定義し、両方の仮想ホストの外WSGIDaemonProcessを定義することですこのように:

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> 
関連する問題