J'utilise le serveur Ubuntu 16.04.2 avec Apache2, sur lequel je stocke mes sites Web personnels.
Pour activer tous mes fichiers de conf sous /etc/apache2/sites-available
(en plus de 000-default.conf
et ssl-default.conf
), je suis allé /var/www/html
et exécuté a2ensite
.
On m'a alors dit:
Your choices are:
000-default default-ssl domain.tld1 domain.tld2 domain.tld3 domain.tld4
Which site(s) do you want to enable (wildcards ok)?
J'ai ensuite fait Ctrl+ Cvisant à exécuter autre chose.
Je cherche un moyen d'activer automatiquement toutes les confs de site, sans en noter une en particulier --- Je veux juste exécuter une commande qui activera toutes les confs de site que j'ai moi-même ajoutées.
*.conf
extension. Ou bien a2ensite se plaindrait que le site n'existe pasVous devez accéder à
/etc/apache2/sites-available
, puis exécuter la commande:Il activera tous les sites du répertoire. (les fichiers devraient ressembler à xxx.conf)
Et puis rechargez apache en utilisant
sudo service apache2 reload
.Donc, votre séquence de commandes devrait ressembler à ceci:
la source
default-ssl.conf
... Cela ressort clairement de la sortieEnabling site default-ssl.
dpkg -S
pour voir si le fichier de configuration provient d'un package.Quel que soit notre emplacement actuel, la commande
sudo a2ensite "*.conf"
tentera d'activer tous les fichiers de configuration placés dans/etc/apache2/sites-available/
.Ensuite, nous pouvons utiliser
a2dissite 000-default.conf default-ssl.conf
pour désactiver les configurations par défaut d'Apache, puis nous pouvons utilisersystemctl restart apache2.service
pour le redémarrer.Nous pouvons exécuter tout cela comme une seule commande:
Quelque chose de plus, nous pouvons créer une commande personnalisée via une fonction dans bash:
Nous avons maintenant la commande , conçue pour faire ce travail. Pour rendre cette commande permanente, nous devons placer les lignes ci-dessus au bas du fichier et ensuite . Le script simple suivant accomplira cette tâche:
a2ensites
~/.bashrc
source
la source
*
caractère générique est en cours d'extension avant d'être transmis à laa2ensite
commande dans mon cas. Cependant, cela fonctionnesudo a2ensite "*.conf"
.a2ensite '*.conf'
fonctionne correctement dans votre système?L'exécution
a2ensite /var/www/html/*/
fera qu'Apache activera chaque conf de site qui porte le même nom que le répertoire du site.Comme effet secondaire, il essaiera également de faire correspondre les répertoires du site qui ne correspondent pas aux fichiers de configuration du site, comme prévu à partir de la sortie suivante, mais je pense que cela peut être ignoré en toute sécurité:
Vous devrez probablement redémarrer Apache après avoir activé les fichiers de conf:
la source
/etc/apache2/sites-available
dossier pour les configurations de vos sites. Une fois que vous les activez via a2ensite, ils sont automatiquement liés à/etc/apache2/sites-enabled
. Ce que vous faites en ce moment est assez bizarre et tous ceux qui ont accès à votre serveur Web peuvent examiner vos configurations?/var/www/html
car c'est le DocumentRoot dudefault.html
-Site. Donc, dans votre cas, vous semblez exécuter les configurations là-dedans ... C'est comme manger avec la bouche ouverte, ne faites pas ça ;-)./var/www/html
comme dossier de configuration. Tant pis alors. Ce dont vous avez réellement besoin est juste unfind ./ -type f -and -not -name "*default*" -exec a2ensite {} \;
copier coller les lignes suivantes dans le nom du fichier
apache_enable.sh
et donner la commande read + execute
apache_enable.sh
et exécuter le script en utilisant l'utilisateur rootla source
Déplacez les configurations par défaut vers un autre dossier, puis * devrait fonctionner pour vous comme vous le souhaitez.
Allez dans le dossier "sites-available" car il ne fonctionne que dans ce dossier.
la source