Das Hinzufügen einer Django-Site beschädigt meine virtuellen Hosts unter CentOS 7

Das Hinzufügen einer Django-Site beschädigt meine virtuellen Hosts unter CentOS 7

Ich habe einCentOS 7-Servermit etwa 20 Domänen, die alle automatisch verwaltet werden, mit einemvhosts-Datei in /etc/httpd/conf.d.

ich versuche zu lernenDjangound wollte damit eine einzelne Domäne einrichten, also habe ich der .conf-Datei einen bestimmten virtuellen Host hinzugefügt.

Das Ergebnis ist, dass die Django-Domäne gut funktioniert, aberalle anderen Seiten sind kaputt(versuche, Django zu verwenden, aber es treten Fehler auf).

Die Django-Domäne hatzwei Ordner: djangodomain.comfür statische Dateien unddjangodomain.appfür die Python-Dateien.

Wie kann ich eine einzelne Django-Domäne in mein vorhandenes virtuelles Host-Setup mit vielen Domänen integrieren?

Vorhandene vhosts.conf:

<VirtualHost *:80>
    serveradmin [email protected]
    serveradmin [email protected]

    usecanonicalname off

    # www.site.com » site.com
    rewriteengine on
    rewritecond %{HTTP_HOST}    ^www\.(.*)$ [nc]
    rewriterule ^(.*)$          http://%1   [r=301,l]

    # file locations
    virtualdocumentroot "/home/username/%0"

    <directory "/home/username/*">
        allowoverride all
        require all granted
        options indexes followsymlinks
        options +execcgi
        options +includes
    </directory>
</VirtualHost>

Was ich hinzugefügt habe und was alles außer der Django-Site kaputt gemacht hat:

<VirtualHost djangodomain.com:80>
    ServerName djangodomain.com
    ServerAlias www.djangodomain.com
    ServerAdmin [email protected]

    DocumentRoot /home/username/djangodomain.com

    WSGIScriptAlias / /home/username/djangodomain.app/django.wsgi

    <Directory /home/username/djangodomain.app>
        Order allow,deny
        Allow from all
    </Directory>

    Alias /robots.txt /home/username/djangodomain.com/robots.txt
    Alias /favicon.ico /home/username/djangodomain.com/favicon.ico
    Alias /images /home/username/djangodomain.com/images
    Alias /static /home/username/djangodomain.com/static

    ErrorLog /home/username/djangodomain.logs/error.log
    CustomLog /home/username/djangodomain.logs/access.log combined
</VirtualHost>

[Update: Problem gelöst] Crosspostet aufStapelaustausch

Antwort1

Sie können nicht eine Anwendung VirtualHostmit derselben IP-Adresse und demselben Port ohne ServerNameoder ServerAlias-Einstellungen mit einer Anwendung kombinieren, die diese Einstellungen hat. Sie können ausführen, apachectl -Sum zu sehen, was Apache tatsächlich von dieser Konfiguration hält.

Vorausgesetzt, Sie kennen alle 20 Domänennamen, die für den Zugriff auf Ihren virtuellen Standardhost verwendet werden, besteht die Lösung einfach darin, sie alle dort mit ServerName/ aufzulisten ServerAlias. Wenn Sie dies nicht tun, können Sie den neuen Namen beispielsweise einer anderen IP-Adresse und/oder einem anderen Port zuordnen.

verwandte Informationen