web-dev-qa-db-ja.com

(000-default.conf && default-ssl.confを渡しながら)a2ensiteですべてのサイト設定を有効にする方法は?

私は、Ubuntuサーバー16.04.2とApache2を使用します。Apache2には個人のWebサイトが保存されています。

/etc/Apache2/sites-available000-default.confおよびssl-default.conf以外)の下ですべてのconfファイルを有効にするには、/var/www/htmlに移動してa2ensiteを実行しました。

私はその後言われました:

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)?

それから Ctrl+C 他の何かを実行することを目指しています。

特定の設定に注意することなく、すべてのサイト設定を自動的に有効にする方法を探しています---自分で追加したすべてのサイト設定を有効にするコマンドを実行したいだけです。

10
JohnDoea

Configディレクトリでfindを使用することもできます。

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

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

18
Ziazis

/etc/Apache2/sites-availableに移動して、コマンドを実行する必要があります。

Sudo a2ensite *

ディレクトリ内のすべてのサイトが有効になります。 (ファイルはxxx.confのようなものでなければなりません)

そして、Sudo service Apache2 reloadを使用してApacheをリロードします。

したがって、コマンドシーケンスは次のようになります。

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

コピーファイル名Apache_enable.shに次の行を貼り付けます

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

read_executeコマンドをApache_enable.shに与え、rootユーザーを使用してスクリプトを実行します

1
Krishna Chalise

現在の場所が何であっても、Sudo a2ensite "*.conf"コマンドは/etc/Apache2/sites-available/にあるすべての構成ファイルを有効にしようとします。

次に、a2dissite 000-default.conf default-ssl.confを使用してデフォルトのApacheの構成を無効にし、systemctl restart Apache2.serviceを使用して再起動します。

これをすべて単一のコマンドのように実行できます。

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

さらに、bashの関数を使用してカスタムコマンドを作成できます。

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

このジョブを実行するように設計されたコマンドa2ensitesがあります。このコマンドを永続的にするには、上記の行を~/.bashrcファイルの下部に配置してから、sourceに配置する必要があります。次の簡単なスクリプトでこのタスクを実行します。

 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

デフォルトの設定を別のフォルダーに移動すると、*が希望どおりに機能するはずです。

このサイトでのみ機能するため、「sites-available」フォルダに移動します。

cd/etc/Apache2/sites-available /

須藤a2ensite *

tested

0
Carobell

a2ensite /var/www/html/*/を実行すると、Apacheは同じ名前を持つ各サイトconfをサイトディレクトリとして有効にします。

副作用として、次の出力から予測されるように、サイトのconfファイルと一致しないサイトのディレクトリも一致させようとしますが、これは安全に無視できると思います。

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!

Confファイルを有効にした後、Apacheを再起動する必要があります。

systemctl restart Apache2.service
0
JohnDoea