web-dev-qa-db-fra.com

Comment activer toutes les conf de site avec a2ensite (en passant par 000-default.conf && default-ssl.conf)?

J'utilise le serveur Ubuntu 16.04.2 avec Apache2, sur lequel je stocke mes sites Web personnels.

Pour activer tous mes fichiers de configuration sous /etc/Apache2/sites-available (à part 000-default.conf et ssl-default.conf), je suis allé à /var/www/html et j'ai 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+C visant à exécuter autre chose.

Je cherche un moyen d'activer automatiquement toutes les confs du site, sans en noter un spécifique - je veux juste exécuter une commande qui activera toutes les confs du site que j'ai moi-même ajoutées.

10
JohnDoea

Vous pouvez également utiliser find dans votre répertoire de configuration.

find /etc/Apache2/sites-available/ -type f -and -not -name "*default*" -exec a2ensite {} \;

Ceci trouve tous les fichiers de configuration dont le nom ne contient pas "default" et les active.

18
Ziazis

Vous devez accéder à /etc/Apache2/sites-available puis exécuter la commande suivante:

Sudo a2ensite *

Cela activera tous les sites du répertoire. (les fichiers doivent ressembler à xxx.conf)

Et puis rechargez Apache en utilisant Sudo service Apache2 reload.

Donc, votre séquence de commande devrait être comme suit:

cd /etc/Apache2/sites-available
Sudo a2ensite *
Sudo service Apache2 reload
8
Shakti Phartiyal

copier coller les lignes suivantes dans le nom de fichier Apache_enable.sh

cd /etc/Apache2/sites-available/
a2ensite *
service Apache2 reload

et donnez la commande read + execute à Apache_enable.sh et exécutez le script à l'aide de l'utilisateur root

1
Krishna Chalise

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 systemctl restart Apache2.service pour le redémarrer.

Nous pouvons exécuter tout cela comme une seule commande:

Sudo bash -c "a2ensite '*.conf' && a2dissite 000-default.conf default-ssl.conf && systemctl restart Apache2.service"

De plus, nous pouvons créer une commande personnalisée via une fonction dans bash:

function a2ensites {
        Sudo bash -c "a2ensite '*.conf' && a2dissite 000-default default-ssl && systemctl restart Apache2.service"
}
export -f a2ensites

Nous avons maintenant la commande a2ensites, conçue pour faire ce travail. Pour rendre cette commande permanente, nous devons placer les lignes ci-dessus au bas du fichier ~/.bashrc, puis source it. Le script simple suivant accomplira cette tâche:

 printf "\nfunction a2ensites { \n\tsudo bash -c \"a2ensite '*.conf' && a2dissite 000-default.conf default-ssl.conf && systemctl restart Apache2.service\" \n}\nexport -f a2ensites\n" | tee -a $HOME/.bashrc; source $HOME/.bashrc
1
pa4080

Déplacez les configurations par défaut vers un autre dossier, puis le * devrait fonctionner pour vous comme vous le souhaitez.

Allez dans le dossier "sites-available" puisqu'il ne fonctionne que dans ce dossier.

cd/etc/Apache2/sites-available /

Sudo a2ensite *

tested

0
Carobell

Si vous exécutez a2ensite /var/www/html/*/, Apache activera chaque site conf ayant le même nom que le répertoire du site.

Comme effet secondaire, il essaiera également de faire correspondre les répertoires de site qui ne correspondent pas aux fichiers de configuration de site, comme le prévoit la sortie suivante, mais je pense que cela peut être ignoré en toute sécurité:

ERROR: Site /var/www/html/domain.tld1 does not exist!
ERROR: Site /var/www/html/domain.tld2 does not exist!
ERROR: Site /var/www/html/Nice_directory does not exist!
ERROR: Site /var/www/html/Nice_file does not exist!

Après avoir activé les fichiers de configuration, vous devrez probablement redémarrer Apache:

systemctl restart Apache2.service
0
JohnDoea