すべてのApache仮想ホストを無効にする方法は?
-
06-07-2019 - |
質問
Webサーバーの設定を行うためのシェルスクリプトを書いています。現在アクティブなすべての仮想ホストを無効にする必要があります。 a2dissite
は複数の引数を受け入れないため、できません
a2dissite `ls /etc/apache2/sites-enabled`
find
を使用すべきですか? / etc / apache2 / sites-enabled
のシンボリックリンクを手動で削除しても安全ですか?
解決
スクリプトはDebianのみですか?その場合、サイト対応のすべてのシンボリックリンクを安全に削除できます。これは、すべてのサイトがサイト利用可能ディレクトリに正しく書き込まれている限り機能します。
例:
find /etc/apache2/sites-enabled/ -type l -exec rm -i "{}" \;
そのディレクトリのシンボリックリンクの代わりに実際にファイルを書いた人からあなたを保護します。
(もちろん、自動スクリプトのためにrmから-iを削除します)
他のヒント
もう少し調査した結果、 a2dissite
は単なるシェルスクリプトであり、基本的には rm
を呼び出すだけであることがわかりました。したがって、他の応答と同様に、安全に行うことに同意します
rm /etc/apache2/sites-enabled/*
ubuntu 12.04lts / ubuntu 16.04lts
次の操作を実行できます[注:root権限sudo a2dissiteが必要になる場合があります]
a2dissite *
または
a2dissite
そして、それはあなたがしたいもののためのプロンプトが表示されます
サイトを完全に無効にしたら、apache2サーバーを再起動します
sudo systemctl restart apache2
または完全に再起動せずにApache設定をリロードする:
sudo service apache2 reload
ホストファイルを削除するには、削除します。 サイトを無効にするだけにする場合は、
を使用しますsudo a2dissite sitename
apache2を再起動します
sudo /etc/init.d/apache2 reload
もう一度システムから完全に削除(削除)します
sudo rm /etc/apache2/sites-available/sitename
ファイルを削除する前に、まず無効にします
シンボリックリンクを削除するか、ディレクトリ全体を移動することができます。これらのリンク以外に特別なデータベースやその他のメタデータはありません。
「a2dissite」は使用せず、常に手動で/ etc / apache2 / sites-enabledのリンクを削除および作成するため、はい、かなり安全だと思います。
ここに私の回避策があります、最初のタイプ:
#a2dissite
(引数なしでこのコマンドを入力すると、次の行を選択するよう求められます)
選択肢は次のとおりです。 siteA siteB siteC siteD
どのサイトを無効にしますか(ワイルドカードは問題ありません)?
上記のすべてのサイトのリスト( siteA siteB siteC siteD )をすべてコピーして、回答として貼り付けてからEnterを押します。
出力結果は次のようになります。
removing dangling symlink /etc/apache2/sites-enabled/siteA.conf
removing dangling symlink /etc/apache2/sites-enabled/siteB.conf
removing dangling symlink /etc/apache2/sites-enabled/siteC.conf
removing dangling symlink /etc/apache2/sites-enabled/siteD.conf
このアプローチは、サイト名の長いリストを削除するかそのままにするかを選択するオプションを提供します。
httpd.confを編集して、仮想ホストのインクルード行を削除できます(ファイルの下部)
明らかに、最新のUbuntuをインストールするだけです;)