Il sito non esiste errore per a2ensite


275

Ho cmsplus.devsotto /etc/apache2/sites-availablecon il seguente codice,

<VirtualHost *:80>
    ServerAdmin master@server.com
    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>

Ora quando uso sudo /usr/sbin/a2ensite cmsplus.dev, ricevo l'errore,

ERROR: Site cmsplus.dev does not exist!

Il mio server web Apache/2.4.6 (Ubuntu)

Come risolvere questo problema?

Risposte:


577

Risolto il problema aggiungendo l' .confestensione ai file di configurazione del sito.

Apache a2ensiterisulta in:

Errore! Il sito non esiste

Problema; Se hai riscontrato l'errore durante il tentativo di abilitare un sito utilizzando:

sudo a2ensite example.com

ma restituisce:

Errore: esempio.com non esiste

a2ensite è semplicemente uno script Perl che funziona solo con la fine dei nomi di file .conf

Pertanto, ho rinominare il mio file impostazione example.comdi example.com.confcome potrebbe essere raggiunto nel modo seguente:

mv /etc/apache2/sites-available/example.com /etc/apache2/sites-available/example.com.conf

Successo


25
Strano! Funzionava bene senza un'estensione in Ubuntu 12.04 e 12.10.
FloatingRock,

Stessa cosa per me. Come dice Guilherme, apache2.conf è cambiato tra Ubuntu o Apache.
Nicolas Zozol,

7
In alternativa, credo che potresti semplicemente modificare il file apache.conf. La riga pertinente è "IncludeOptional sites-enabled / *. Conf" Rimuovi .conf alla fine e tornerai a ciò che ha funzionato in 12.04. Penso che questo potrebbe essere un cambiamento che Debian ha fatto entrare in Ubuntu, ma non sono sicuro.
Giosia,

2
Perché questa risposta è terza? Questo è il modo corretto di farlo.
nish

Mi ero già
arreso

91

Probabilmente hai aggiornato l'installazione di Ubuntu e uno degli aggiornamenti includeva l'aggiornamento di Apache alla versione 2.4.x.

In Apache 2.4.x i file di configurazione del vhost, situati nella directory / etc / apache2 / sites-available, devono avere l'estensione .conf.

Usando il terminale (comando mv), rinomina tutti i tuoi file di configurazione esistenti e aggiungi l'estensione .conf a tutti loro.

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

Se viene visualizzato l'errore "Autorizzazione negata", aggiungere "sudo" davanti ai comandi del terminale.

Non è necessario apportare altre modifiche ai file di configurazione.

Abilita i vhost:

a2ensite cmsplus.dev.conf

E quindi ricaricare Apache:

service apache2 reload

I tuoi siti dovrebbero essere attivi e funzionanti ora.


AGGIORNAMENTO: Come menzionato qui , una distribuzione Linux che hai installato ha modificato la configurazione in Includi solo * .conf. Pertanto non ha nulla a che fare con Apache 2.2 o 2.4


28

C'è un altro buon modo, basta modificare il file e poi apache2.confuna riga alla fine

IncludeOptional siti abilitati / *. Conf

basta rimuovere il .confalla fine, in questo modo

IncludeOptional siti abilitati / *

e riavvia il server.

(L'ho provato solo in Ubuntu 13.10, quando l'ho aggiornato.)


1
Hmm ... Ho provato questo su Ubuntu 14.04 e non ha funzionato. .confTuttavia, è stato aggiunto ai file di configurazione.
Clifton Labrum,

strano, ho avuto questo errore quando ho aggiornato Ubuntu 12.04 a 13.10 (perché ho sostituito involontariamente i file di configurazione di Apache). Nell'aggiornamento 14.04 mi sono ricordato di non sostituire, e ho avuto problemi.
Guilherme,

Questo non è davvero un buon modo. I file con i siti abilitati sono collegamenti simbolici ai file corrispondenti nei siti disponibili e dovrebbero essere rimossi per disabilitare il sito - questo è in effetti ciò che a2dissite fa a2ensite abilita il sito in modo corrispondente.
Dokbua,

8

Ho appena avuto lo stesso problema. Direi che non ha nulla a che fare con apache.conf.

a2ensite deve essere cambiato: la riga 532 è la riga che applica il suffisso .conf:

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

Se lo cambi in:

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

... funzionerà senza alcun suffisso.

Ovviamente non vorrai cambiare lo script a2ensite, ma cambiare il suffisso del file conf è il modo corretto.

Probabilmente è solo un modo per far rispettare il suffisso ".conf".


Vedi anche questa domanda: askubuntu.com/questions/362682/…
cslotty,

7

Quindi .. il modo più veloce è rinominare i nomi di configurazione del sito che terminano con ".conf"

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

a2ensite mysite.conf

altre note sui commenti precedenti:

  • IncludeOptional non è stato introdotto fino ad apache 2.36 - apportare le modifiche sopra seguite da riavvio su 2.2 lascerà il server spento!

  • inoltre, la versione 2.2 a2ensite non può essere hackerata come descritto

inoltre, poiché il file disponibile per i siti è in realtà un file di configurazione, dovrebbe comunque essere nominato in questo modo.


In generale , non riavviare i servizi (i server web sono un tipo di servizio):

  • la gente non riesce a trovarli se non corrono! Pensa a Linux non a MS Windows ..

I server possono funzionare per molti anni: aggiornamento live, ricarica configurazione, ecc.

Il cloud non significa che è necessario riavviare per caricare un file di configurazione.

  • Quando si modifica la configurazione di un servizio, utilizzare "ricaricare" non "riavviare".

  • riavvio interrompe il servizio quindi avvia il servizio: se si verifica un problema durante la modifica della configurazione, il servizio non verrà riavviato.

  • ricaricare darà un errore ma il servizio non si arresta mai dandoti la possibilità di correggere l'errore di configurazione che potrebbe essere solo una sintassi errata.

debian o ubunto [nome-servizio per questa discussione è apache2]

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

altri sistemi operativi vengono lasciati come dimensioni extra per il lettore.


5

Ha funzionato dopo aver aggiunto .confal file di configurazione


2

Ho appena aggiornato la versione di Ubuntu Server da 12.04 LTS a 14.04 LTS.

In effetti, come detto sopra, l'estensione .conf di Apache 2.4.x è necessaria per i file vhost dei siti Web che risiedono nella directory disponibile nei siti.

Prima di leggere questa domanda non avevo idea di cosa stesse succedendo con il server.

Bella soluzione

Riassumendo ho fatto i seguenti passi sul Terminale:

1) Accedi alla cartella abilitata per i siti

$ cd /etc/apache2/sites-enabled

2) Poiché il comando a2dissite non funzionerà con file obsoleti (senza .conf) rimuovere i vecchi file del sito Web pubblicati

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

3) Rinominare i file vhost del sito Web modificando l'estensione aggiungendo .conf alla fine

$ sudo mv /etc/apache2/sites-available/mywebsite /etc/apache2/sites-available/mywebsite.conf

4) Ripubblicare il nuovo e corretto file vhost

$ sudo a2ensite mywebsite.conf

5) Controlla il sito Web sul browser e divertiti! :)


1

Nel mio caso con Ubuntu 14.04.3 e Apache 2.4.7, il problema era che ho copiato site1.conf per rendere disponibile site2.conf e, copiando, qualcosa è successo e non sono riuscito a trovare site2.conf con l'errore descritto nel thread .

La soluzione per me era rinominare site2.conf in site2 e quindi rinominare site2 in site2.conf. Successivamente sono stato in grado di a2ensite site2.conf.


1

Mi rendo conto che non è il caso qui, ma potrebbe aiutare qualcuno.

Ricontrolla di non aver creato il file conf in / etc / apache2 / siti abilitato per errore. Si ottiene lo stesso errore.


-2

Prova così ..

NameVirtualHost *:80
<VirtualHost *:80>
    ServerAdmin master@server.com
    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>

e aggiungi la voce in / etc / hosts

127.0.0.1 www.cmsplus.dev

riavvia apache ..


Ora mi sta dando la It workspagina predefinita invece delle impostazioni.
devo

Hai la configurazione di più host virtuali? Puoi pubblicare l'intero contenuto del file?
Balaji Perumal,

3
Grazie, risolto questo problema semplicemente aggiungendo l' .confestensione a questi file di configurazione del sito.
devo
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.