it-swarm.com.de

Site existiert nicht Fehler für a2ensite

Ich habe cmsplus.dev unter /etc/Apache2/sites-available mit dem folgenden Code,

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName www.cmsplus.dev
    ServerAlias cmsplus.dev

    DocumentRoot /var/www/cmsplus.dev/public

    LogLevel warn
    ErrorLog /var/www/cmsplus.dev/log/error.log
    CustomLog /var/www/cmsplus.dev/log/access.log combined
</VirtualHost>

Wenn ich jetzt Sudo /usr/sbin/a2ensite cmsplus.dev verwende, erhalte ich die Fehlermeldung:

ERROR: Site cmsplus.dev does not exist!

Mein Webserver Apache/2.4.6 (Ubuntu)

Wie löse ich dieses Problem?

247
devo

Das Problem wurde gelöst, indem den Site-Konfigurationsdateien die Erweiterung .conf hinzugefügt wurde.

Apache a2ensite führt zu: 

Error! Site existiert nicht

Problem; Wenn Sie beim Versuch, eine Site zu aktivieren, den Fehler gefunden haben:

Sudo a2ensite mysite.com

aber es kehrt zurück:

Fehler: mysite.com existiert nicht

a2ensite ist einfach ein Perl-Skript, das nur mit Dateinamen arbeitet, die mit .conf enden. 

Daher muss ich meine Einstellungsdatei für mysite.com in mysite.com.conf umbenennen, da dies wie folgt erreicht werden kann: 

mv /etc/Apache2/sites-available/mysite.com /etc/Apache2/sites-available/mysite.com.conf

Erfolg

522
devo

Sie haben wahrscheinlich Ihre Ubuntu-Installation aktualisiert und eines der Updates beinhaltete das Upgrade von Apache auf Version 2.4.x

In Apache 2.4.x müssen die vhost-Konfigurationsdateien im Verzeichnis/etc/Apache2/sites-available die Erweiterung .conf haben.

Benennen Sie mit dem Terminal (Befehl mv) alle vorhandenen Konfigurationsdateien um und fügen Sie allen die Erweiterung .conf hinzu. 

mv /etc/Apache2/sites-available/cmsplus.dev /etc/Apache2/sites-available/cmsplus.dev.conf

Wenn Sie die Fehlermeldung "Permission denied" erhalten, fügen Sie "Sudo" vor Ihren Terminalbefehlen ein.

Sie müssen keine weiteren Änderungen an den Konfigurationsdateien vornehmen.

Aktivieren Sie die vhost (s):

a2ensite cmsplus.dev.conf

Und dann Apache neu laden:

service Apache2 reload

Ihre Websites sollten jetzt betriebsbereit sein. 


UPDATE: Wie bereits erwähnt - hier hat eine von Ihnen installierte Linux-Distribution die Konfiguration nur in Include * .conf geändert. Daher hat es nichts mit Apache 2.2 oder 2.4 zu tun

84
consuela

Es gibt noch einen anderen guten Weg, bearbeiten Sie einfach die Datei Apache2.conf am Ende eine Zeile

IncludeOptional sites-enabled/*. Conf

entfernen Sie einfach den .conf am Ende, wie hier

IncludeOptional-Sites aktiviert/*

und starten Sie den Server neu.

(Ich habe dies nur in Ubuntu 13.10 ausprobiert, als ich es aktualisiert habe.)

27
Guilherme

Ich hatte gerade das gleiche Problem. Ich würde sagen, es hat nichts mit der Apache.conf zu tun.

a2ensite muss sich geändert haben - Zeile 532 ist die Zeile, die das Suffix .conf erzwingt:

else {
    $dir    = 'sites';
    $sffx   = '.conf';
    $reload = 'reload';
}

Wenn Sie es ändern in:

else {
    $dir    = 'sites';
    #$sffx   = '.conf';
    $sffx   = '';
    $reload = 'reload';
}

... es wird ohne Suffix funktionieren.

Natürlich möchten Sie das a2ensite-Skript nicht ändern, aber das Suffix der conf-Datei zu ändern ist der richtige Weg.

Es ist wahrscheinlich nur eine Möglichkeit, das ".conf" -Suffix durchzusetzen.

8
cslotty

Der schnellste Weg besteht darin, Site-Konfigurationsnamen umzubenennen, die auf ".conf" enden. 

mv /etc/Apache2/sites-available/mysite /etc/Apache2/sites-available/mysite.conf

a2ensite mysite.conf

weitere Anmerkungen zu früheren Kommentaren:

  • IncludeOptional wurde erst mit Apache 2.36 eingeführt. Wenn Sie Änderungen vornehmen und anschließend den Neustart auf 2.2 durchführen, wird Ihr Server heruntergefahren!

  • a2ensite Version 2.2 kann auch nicht wie beschrieben gehackt werden

da es sich bei Ihrer für Sites verfügbaren Datei tatsächlich um eine Konfigurationsdatei handelt, sollte sie trotzdem so benannt werden.


Im Allgemeinen nicht Neustart von Diensten (Webserver sind eine Art von Dienst):

  • leute können sie nicht finden, wenn sie nicht laufen! Denke an Linux nicht MS Windows ..

Server können viele Jahre laufen - Live-Update, Konfiguration neu laden usw.

Die Cloud bedeutet nicht, dass Sie neu starten müssen, um eine Konfigurationsdatei zu laden.

  • Wenn Sie die Konfiguration eines Dienstes ändern, verwenden Sie "reload" und nicht "restart".

  • restart beendet den Dienst und startet den Dienst. Wenn bei der Änderung der Konfiguration ein Problem auftritt, wird der Dienst nicht neu gestartet.

  • beim erneuten Laden wird ein Fehler ausgegeben, der Dienst wird jedoch nie heruntergefahren, wodurch Sie die Möglichkeit haben, den Konfigurationsfehler zu beheben, der nur eine schlechte Syntax sein könnte.

debian oder ubunto [Dienstname für diesen Thread ist Apache2]

service {service-name} {start} {stop} {reload} ..

andere Betriebssysteme sind als Überträger für den Leser übrig geblieben.

7
lil ol me

Arbeitete, nachdem ich .conf zur Konfigurationsdatei hinzugefügt hatte

4
16kb

In meinem Fall mit Ubuntu 14.04.3 und Apache 2.4.7 bestand das Problem darin, dass ich site1.conf kopiert habe, um site2.conf verfügbar zu machen. Durch das Kopieren ist etwas passiert und ich konnte die site2.conf nicht mit dem in Thread beschriebenen Fehler a2ensite .

Die Lösung für mich war, Site2.conf in Site2 umzubenennen und dann Site2 in Site2.conf umzubenennen. Danach konnte ich site2.conf a2ensite.

1
SysManSD

Ich habe gerade die Ubuntu Server-Version von 12.04 LTS auf 14.04 LTS aktualisiert.

Wie bereits erwähnt, ist die Erweiterung .conf für Apache 2.4.x für die Vhost-Dateien der Websites erforderlich, die sich im Verzeichnis der verfügbaren Websites befinden.

Bevor ich diese Frage las, hatte ich keine Ahnung, was mit dem Server los war. 

Ziemlich schöne Lösung.

Zusammenfassend habe ich die folgenden Schritte am Terminal durchgeführt:

1) Greifen Sie auf einen Standort-aktivierten Ordner zu

$ cd /etc/Apache2/sites-enabled

2) Da der Befehl a2dissite nicht mit veralteten Dateien funktioniert (ohne .conf), entfernen Sie die alten Website-Dateien, die veröffentlicht wurden

$ Sudo rm <my-old-website-without-.conf>

3) Benennen Sie die Website-Vhost-Dateien um und ändern Sie die Erweiterung

$ Sudo mv /etc/Apache2/sites-available/mywebsite /etc/Apache2/sites-available/mywebsite.conf

4) Veröffentlichen Sie die neue und korrekte vhost-Datei erneut

$ Sudo a2ensite mywebsite.conf

5) Überprüfen Sie die Website im Browser und haben Sie Spaß! :)

1

Mir ist klar, dass das hier nicht der Fall ist, aber es könnte jemandem helfen. 

Überprüfen Sie, ob Sie die conf-Datei aus Versehen nicht in/etc/Apache2/sites-enabled erstellt haben. Sie erhalten den gleichen Fehler.

0
Dave