Apacheで大量のバーチャルホストを一撃構築する
さて、今回取り上げるテーマですが、
「OSインストール直後のサーバー(CentOS 6)にApache(httpd)をインストールし、引数に与えたぶんだけバーチャルホスト(Name Based)を作成する運用ツールを生成してみる」
としました。いわゆる、Webホスティング環境の構築です。このスクリプトはrootユーザーで実行しますので、rootユーザーでsshログインするか、一般ユーザーを作成してログインしてからsu -
でrootユーザーにスイッチしましょう。
今回の一撃シェルスクリプトが実行する処理の内容・順番は、以下のとおりです。
- OSインストール直後の各種設定(iptables、パッケージのアップデートほか)
- Apache(httpd)とPHPのインストール
- サーバー運用ツール「VHMAINTE」の生成
- 後処理とOSの再起動
最初にお断りしておきますと、今回の一撃シェルスクリプトを実行しただけでは、バーチャルホストの設定は一切インストールされません。のっけから看板に偽りありと思われるかもしれませんが、バーチャルホストの設定をハードコードしてしまうと、その後の運用(バーチャルホストの追加/削除)のたびに、このスクリプトを動かさなければならなくなります。
パッケージのアップデートやインストール、再起動の処理を含むスクリプトなので、case文などで引数を見て動作を変えるという手もありますが、スクリプトの保守性が落ちる上に、オペミスで意図しない動作をしてしまうリスクを孕むことにもなってしまいます。なので、この一撃シェルスクリプトは運用ツールを生成した上で、1回きりの動作を完遂したあとはスパイ大作戦のように「なお、このシェルスクリプトは自動的に消滅する」という動きにしています。
構築するホスティング環境の仕様
今回構築するホスティング環境は次の仕様としています。
- バーチャルホスト管理ユーザーのホームディレクトリは /home/vhosts/ホスト名/
- バーチャルホストのドキュメントルートは /home/vhosts/ホスト名/public_html
- バーチャルホストのログディレクトリは /home/logs/ホスト名/
運用ツールの仕様は次のとおりです。
- 実行者はroot
- 運用ツールのフルパスは /root/bin/VHMAINTE
- 運用ツールが読み込む設定ファイルは /root/etc/VHLIST
運用ツールに引数create
を与えて実行したときには、設定ファイルに書かれたバーチャルホストとユーザーを作成します。引数delete
を与えて実行したときには、設定ファイルに書かれたバーチャルホストとユーザーを削除します。なお、削除時には、ログファイルとユーザーのホームディレクトリをバックアップします。
設定ファイルの書式は次のとおりです。
create www.example.com admin P@sSw0rD
delete www.example.com admin
次ページから、一撃シェルスクリプトの中身を見ていきます。
今回の一撃シェルスクリプト(ファイル名:INSTALLER)は、本記事のタイトル下にある[ダウンロード]をクリックすると入手できます。