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?
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
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
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.)
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".
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 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.
Travaillé après avoir ajouté .conf
au fichier de configuration
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.
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! :)
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.