質問

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をインストールするだけです;)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top