apache apache2 - Il sito non esiste errore per a2ensite




multiple available (9)

Ho cmsplus.dev in /etc/apache2/sites-available con il seguente codice,

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

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

ERROR: Site cmsplus.dev does not exist!

Il mio server web Apache/2.4.6 (Ubuntu)

Come risolvere questo problema?


Answers

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

a2ensite deve essere cambiato - la linea 532 è la linea che impone il suffisso .conf:

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

Se lo cambi a:

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

... funzionerà senza alcun suffisso.

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

Probabilmente è solo un modo per forzare il ".conf" -suffix.


Prova così ..

NameVirtualHost *:80
<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>

e aggiungi la voce in / etc / hosts

127.0.0.1 www.cmsplus.dev

riavviare apache ..


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

Infatti, come detto sopra, l'estensione .conf ad Apache 2.4.x è necessaria per i file vhost dei siti web che risiedono nella directory dei siti disponibili.

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

Bella soluzione.

Riassumendo, ho fatto i seguenti passaggi sul terminale:

1) Accedi alla cartella abilitata ai siti

$ cd /etc/apache2/sites-enabled

2) Poiché il comando a2dissite non funziona con i file deprecati (senza .conf) rimuove i vecchi file del sito Web che sono stati pubblicati

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

3) Rinominare i file vhost del sito Web cambiando la sua 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! :)


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 di vhost, che si trovano 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 ricevi un errore di "Autorizzazione negata", aggiungi "sudo" davanti ai comandi del terminale.

Non è necessario apportare altre modifiche ai file di configurazione.

Abilita il vhost (s):

a2ensite cmsplus.dev.conf

E poi ricarica Apache:

service apache2 reload

I tuoi siti dovrebbero essere attivi e funzionanti ora.

AGGIORNAMENTO: Come accennato here , una distribuzione Linux installata ha modificato la configurazione solo in Include * .conf. Pertanto non ha nulla a che fare con Apache 2.2 o 2.4


C'è un altro buon modo, basta modificare il file apache2.conf contiene una riga alla fine

IncludeOptional sites-enabled / *. Conf

basta rimuovere il .conf alla fine, in questo modo

IncludeOptional sites-enabled / *

e riavviare il server.

(Ho provato questo solo su Ubuntu 13.10, quando l'ho aggiornato.)


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

Risultati Apache a2ensite in:

Errore! Il sito non esiste

Problema; Se hai trovato l'errore durante il tentativo di abilitare un sito usando:

sudo a2ensite mysite.com

ma restituisce:

Errore: mysite.com non esiste

a2ensite è semplicemente uno script perl che funziona solo con nomi di file che terminano con .conf

Pertanto, devo rinominare il mio file di impostazione per mysite.com su mysite.com.conf come si potrebbe ottenere come segue:

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

Successo


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

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

a2ensite mysite.conf

altre note su commenti precedenti:

  • IncludeOptional non è stato introdotto fino a quando apache 2.36 - fare una modifica sopra seguita dal riavvio su 2.2 lascerà il tuo server inattivo!

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

inoltre, poiché il tuo file disponibile sui siti è in realtà un file di configurazione, dovrebbe comunque essere denominato in questo modo ..

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

  • la gente non li trova se non stanno correndo! Pensa Linux non MS Windows ..

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

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

  • Quando si modifica la configurazione di un servizio, utilizzare "ricarica" ​​e "riavvio".

  • riavvio interrompe il servizio, quindi avvia il servizio: se si verifica un problema nella configurazione della configurazione, il servizio non si riavvia.

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

debian o ubunto [nome-servizio per questo thread è apache2]

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

l'altro è lasciato come un excersize per il lettore.


Ho lavorato dopo aver aggiunto .conf al file di configurazione


Apache eredita la sua umask dal suo processo genitore (cioè il processo che avvia Apache); questo dovrebbe essere in genere lo script /etc/init.d/ . Quindi metti un comando umask in quello script.





apache apache2 virtualhost