Le site n'existe pas d'erreur pour a2ensite

275

J'ai cmsplus.devsous /etc/apache2/sites-availableavec le code suivant,

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

Maintenant, quand j'utilise sudo /usr/sbin/a2ensite cmsplus.dev, je reçois l'erreur,

ERROR: Site cmsplus.dev does not exist!

Mon serveur web Apache/2.4.6 (Ubuntu)

Comment résoudre ce problème?

devo
la source

Réponses:

577

Résolu le problème en ajoutant une .confextension aux fichiers de configuration du site.

Apache se a2ensitetraduit par:

Erreur! Le site n'existe pas

Problème; Si vous avez trouvé l'erreur en essayant d'activer un site en utilisant:

sudo a2ensite example.com

mais il renvoie:

Erreur: example.com n'existe pas

a2ensite est tout simplement un script Perl qui ne fonctionne qu'avec des noms de fichiers se terminant .conf

Par conséquent, je dois renommer mon fichier de configuration pour example.comà example.com.confcomme cela pourrait être réalisé comme suit:

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

Succès

devo
la source
25
Bizarre! Cela fonctionnait bien sans extension dans Ubuntu 12.04 et 12.10.
FloatingRock
Pareil pour moi. Comme le dit Guilherme, apache2.conf a changé entre les versions ubuntu ou Apache.
Nicolas Zozol
7
Comme alternative, je pense que vous pouvez simplement modifier le fichier apache.conf. La ligne appropriée est "IncludeOptional sites-enabled / *. Conf" Supprimez le .conf à la fin et vous reviendrez à ce qui fonctionnait en 12.04. Je pense que c'est peut-être un changement que Debian a fait pour entrer dans Ubuntu, mais je ne suis pas sûr.
Josiah
2
Pourquoi est-ce que ça répond 3e? C'est la bonne façon de procéder.
Nish
J'avais déjà abandonné après avoir à peu près tout changé ... Je me souviendrai d'ajouter l'extension .conf à partir de maintenant ...
wtf8_decode
91

Vous avez probablement mis à jour votre installation Ubuntu et l'une des mises à jour comprenait la mise à niveau d'Apache vers la version 2.4.x

Dans Apache 2.4.x, les fichiers de configuration de vhost, situés dans le répertoire / etc / apache2 / sites-available, doivent avoir l'extension .conf.

À l'aide du terminal (commande mv), renommez tous vos fichiers de configuration existants et ajoutez l'extension .conf à chacun d'eux.

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

Si vous obtenez une erreur "Autorisation refusée", ajoutez "sudo" devant vos commandes de terminal.

Vous n'avez pas besoin d'apporter d'autres modifications aux fichiers de configuration.

Activez le ou les vhost:

a2ensite cmsplus.dev.conf

Et puis rechargez Apache:

service apache2 reload

Vos sites devraient être opérationnels dès maintenant.


MISE À JOUR: Comme mentionné ici , une distribution Linux que vous avez installée a changé la configuration pour inclure * .conf uniquement. Par conséquent, cela n'a rien à voir avec Apache 2.2 ou 2.4

consuela
la source
28

Il y a un autre bon moyen, éditez simplement le fichier là- apache2.confbas une ligne à la fin

IncludeOptional sites-enabled / *. Conf

il suffit de retirer le .confà la fin, comme ceci

Inclut des sites en option / *

et redémarrez le serveur.

(J'ai essayé cela uniquement dans Ubuntu 13.10, lorsque je l'ai mis à jour.)

Guilherme
la source
1
Hmm ... J'ai essayé ça sur Ubuntu 14.04 et ça n'a pas marché. .confCependant, l' ajout aux fichiers de configuration l'a fait.
Clifton Labrum
étrange, j'ai eu cette erreur lorsque j'ai mis à jour mon Ubuntu 12.04 vers 13.10 (car j'ai substitué involontairement les fichiers de configuration d'apache). Dans la mise à jour 14.04, je me suis souvenu de ne pas remplacer, et j'ai eu des problèmes.
Guilherme
Ce n'est vraiment pas un bon moyen. Les fichiers sous sites activés sont des liens symboliques vers les fichiers correspondants sous sites disponibles et doivent simplement être supprimés pour désactiver le site - c'est en fait ce que fait a2dissite a2ensite active le site en conséquence.
Dokbua
8

J'ai juste eu le même problème. Je dirais que cela n'a rien à voir avec le fichier apache.conf.

a2ensite doit avoir changé - la ligne 532 est la ligne qui applique le suffixe .conf:

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

Si vous le changez en:

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

... cela fonctionnera sans suffixe.

Bien sûr, vous ne voudriez pas changer le script a2ensite, mais changer le suffixe du fichier conf est la bonne façon.

C'est probablement juste un moyen d'imposer le suffixe ".conf".

cslotty
la source
Voir aussi cette question: askubuntu.com/questions/362682/…
cslotty
7

Donc ... le moyen le plus rapide est de renommer les noms de configuration du site se terminant par ".conf"

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

a2ensite mysite.conf

autres notes sur les commentaires précédents:

  • IncludeOptional n'a été introduit qu'apache 2.36 - effectuer les modifications ci-dessus, puis redémarrer le 2.2, laissera votre serveur hors service!

  • aussi, la version 2.2 a2ensite ne peut pas être piratée comme décrit

De plus, puisque votre fichier disponible sur les sites est en fait un fichier de configuration, il doit de toute façon être nommé ainsi.


En général , ne redémarrez pas les services (les serveurs Web sont un type de service):

  • les gens ne peuvent pas les trouver s'ils ne courent pas! Pensez que Linux n'est pas MS Windows ..

Les serveurs peuvent fonctionner pendant de nombreuses années - mise à jour en direct, configuration de rechargement, etc.

Le cloud ne signifie pas que vous devez redémarrer pour charger un fichier de configuration.

  • Lorsque vous modifiez la configuration d'un service, utilisez «recharger» et non «redémarrer».

  • redémarrer arrête le service puis démarre le service - s'il y a un problème dans votre modification de la configuration, le service ne redémarrera pas .

  • reload donnera une erreur mais le service ne s'arrêtera jamais, vous donnant la possibilité de corriger l'erreur de configuration qui ne peut être qu'une mauvaise syntaxe.

debian ou ubunto [le nom du service pour ce fil est apache2]

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

l'autre OS est une excersize pour le lecteur.

lil ol me
la source
5

A fonctionné après avoir ajouté .confau fichier de configuration

16kb
la source
2

Je viens de mettre à jour la version d'Ubuntu Server de 12.04 LTS à 14.04 LTS.

En effet, comme indiqué ci-dessus, l'extension .conf d'Apache 2.4.x est nécessaire pour les fichiers vhost des sites Web qui résident dans le répertoire des sites disponibles.

Avant de lire cette question, je n'avais aucune idée de ce qui se passait avec le serveur.

Très jolie solution.

Pour résumer, j'ai fait les étapes suivantes sur le terminal:

1) Accéder au dossier compatible avec les sites

$ cd /etc/apache2/sites-enabled

2) Parce que la commande a2dissite ne fonctionnera pas avec les fichiers obsolètes (sans .conf) supprimez les anciens fichiers du site Web qui ont été publiés

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

3) Renommez les fichiers vhost du site Web en changeant son extension en ajoutant .conf à la fin

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

4) Republiez le nouveau fichier vhost correct

$ sudo a2ensite mywebsite.conf

5) Consultez le site Web sur le navigateur et amusez-vous! :)

Alexandre Ribeiro
la source
1

Dans mon cas avec Ubuntu 14.04.3 et Apache 2.4.7, le problème était que j'ai copié site1.conf pour rendre site2.conf disponible, et en copiant, quelque chose s'est passé et je n'ai pas pu a2ensite site2.conf avec l'erreur décrite dans le thread .

La solution pour moi était de renommer site2.conf en site2 puis de renommer site2 en site2.conf. Après cela, j'ai pu a2ensite site2.conf.

SysManSD
la source
1

Je me rends compte que ce n'est pas le cas ici, mais cela pourrait aider quelqu'un.

Vérifiez que vous n'avez pas créé le fichier conf dans / etc / apache2 / sites-enabled par erreur. Vous obtenez la même erreur.

Dave
la source
-2

Essayez comme ça ..

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>

et ajouter une entrée dans / etc / hosts

127.0.0.1 www.cmsplus.dev

redémarrer apache ..

Balaji Perumal
la source
Maintenant, cela me donne la It workspage par défaut au lieu des paramètres.
devo
Avez-vous une configuration de plusieurs hôtes virtuels? Pouvez-vous publier le contenu d'un fichier entier?
Balaji Perumal,
3
Merci d'avoir résolu ce problème en ajoutant simplement une .confextension à ces fichiers de configuration de site.
devo