すべての.confファイルをコピーして、ubuntu-apache環境でそれぞれを有効にする方法

How to copy all .conf files and enable each of them in ubuntu-apache environment


質問 written by Heero Yuy @2019-01-28 07:00:19Z

: 0 : 2 : 41

このスクリプトの短いバージョンが必要です

cp apache-conf/site1.conf /etc/apache2/sites-available
cp apache-conf/site2.conf /etc/apache2/sites-available
cp apache-conf/site..N.conf /etc/apache2/sites-available
a2ensite site1
a2ensite site2
a2ensite site..N

cp apache-conf/*.conf /etc/apache2/sites-availableが、それぞれを有効にするにはどうすればよいですか?

コメント 1

そのうちの1つを有効な回答として受け入れる必要があります。選択した回答の横にあるチェックマークをクリックします

written by イニアン @2019-01-29 03:42:35Z

回答 1 written by プラモド・ビネプラモド・ @2019-01-28 07:28:21Z
1

次のコマンドを使用してください

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

これにより、名前に「デフォルト」が含まれていないすべての構成ファイルが検出され、アクティブになります。

エラーが発生した場合は、このスレッドをご覧くださいクレジット: https : //askubuntu.com/questions/916377/how-to-enable-all-site-confs-with-a2ensite-while-passing-over-000 -default-conf / 917701

回答 2 written by @2019-01-28 07:40:48Z
1

bash強力なビルトインutilsを使用して、ファイル名の一部の数字をグロブできます。

# To avoid un-expanded globs being treated as valid entries
shopt -s nullglob

for file in apache-conf/site[0-9]*.conf; do
    cp -- "$file" /etc/apache2/sites-available
done

Nが静的であり、実行時に不明であると仮定すると、以下のように何かを行うことができます。 10である場合を考えます

Assuming N is static and not known at run-time, you can do something as below. Consider a case of being it 10

および宛先パスでコマンドa2ensiteを実行するため

for file in apache-conf/site{0..10}.conf; do
    cp -- "$file" /etc/apache2/sites-available
done