web-dev-qa-db-fra.com

Le site n’existe pas d’erreur pour a2ensite

J'ai cmsplus.dev sous /etc/Apache2/sites-available avec 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, j'obtiens l'erreur,

ERROR: Site cmsplus.dev does not exist!

Mon serveur web Apache/2.4.6 (Ubuntu)

Comment résoudre ce problème?

247
devo

Résolution du problème en ajoutant l'extension .conf aux fichiers de configuration du site.

Apache a2ensite se traduit 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 mysite.com

mais ça revient:

Erreur: mysite.com n'existe pas

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

Par conséquent, je dois renommer mon fichier de paramètres pour mysite.com en mysite.com.conf, comme cela pourrait être réalisé comme suit: 

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

Succès

522
devo

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

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

À l’aide de terminal (commande mv), renommez tous vos fichiers de configuration existants et ajoutez-y l’extension .conf. 

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.

Activer le (s) vhost (s):

a2ensite cmsplus.dev.conf

Et puis rechargez Apache:

service Apache2 reload

Vos sites devraient être opérationnels maintenant. 


UPDATE: Comme mentionné ici , une distribution Linux que vous avez installée a modifié la configuration en incluant uniquement * .conf. Par conséquent, cela n'a rien à voir avec Apache 2.2 ou 2.4

84
consuela

Il y a un autre bon moyen, éditez simplement le fichier Apache2.conf theres une ligne à la fin

Inclure les sites facultatifs/*. Conf

supprimez simplement le .conf à la fin, comme ceci

Inclure les sites facultatifs/*

et redémarrez le serveur.

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

27
Guilherme

Je viens d'avoir le même problème. Je dirais que cela n'a rien à voir avec 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 le bon moyen.

C'est probablement juste un moyen de renforcer le suffixe ".conf".

8
cslotty

Ainsi, le moyen le plus rapide est de renommer les noms de configuration de 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 que jusqu’à Apache 2.36 - les modifications ci-dessus suivies d’un redémarrage sur 2.2 laisseront votre serveur en panne!

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

de plus, étant donné que votre fichier sites-available est en fait un fichier de configuration, vous devez le nommer ainsi.


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

  • les gens ne peuvent pas les trouver s'ils ne courent pas! Pensez linux 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 "reload" et non "restart".

  • 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 sera pas redémarrage.

  • reload donnera une erreur, mais le service ne s'arrête jamais, ce qui vous permet de corriger l'erreur de configuration, qui ne peut être qu'une mauvaise syntaxe.

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

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

les autres OS sont laissés comme un excersize pour le lecteur.

7
lil ol me

Travaillé après avoir ajouté .conf au fichier de configuration

4
16kb

Dans mon cas avec Ubuntu 14.04.3 et Apache 2.4.7, le problème était que je copiais site1.conf pour rendre site2.conf disponible, et en copiant, quelque chose se passait et je ne pouvais pas a2ensite site2.conf avec l'erreur décrite dans le fil .

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

1
SysManSD

Je viens de mettre à niveau la version du serveur Ubuntu de 12.04 LTS à 14.04 LTS.

En effet, comme indiqué ci-dessus, l'extension .conf à Apache 2.4.x est nécessaire pour les fichiers de sites Web vhost résidant dans le répertoire sites-available.

Avant de lire cette question, je ne savais pas ce qui se passait avec le serveur. 

Jolie solution agréable.

Je résume simplement les étapes suivantes sur Terminal:

1) Accéder au dossier activé par les sites

$ cd /etc/Apache2/sites-enabled

2) La commande a2dissite ne fonctionnant pas avec des fichiers obsolètes (sans .conf), supprimez les anciens fichiers de site Web 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 et correct fichier vhost

$ Sudo a2ensite mywebsite.conf

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

1

Je réalise 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 par erreur dans/etc/Apache2/sites-enabled. Vous obtenez la même erreur.

0
Dave