SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

ツールがなくてもサーバー構築でたじろがない! 一撃シェルスクリプト道場

Apacheホスティング環境(Webサーバー+PHP実行環境)をコマンド一発で構築する一撃シェルスクリプト

ツールがなくてもサーバー構築でたじろがない! 一撃シェルスクリプト道場 第1回


  • X ポスト
  • このエントリーをはてなブックマークに追加

Apacheで大量のバーチャルホストを一撃構築する

 さて、今回取り上げるテーマですが、

 「OSインストール直後のサーバー(CentOS 6)にApache(httpd)をインストールし、引数に与えたぶんだけバーチャルホスト(Name Based)を作成する運用ツールを生成してみる」

 としました。いわゆる、Webホスティング環境の構築です。このスクリプトはrootユーザーで実行しますので、rootユーザーでsshログインするか、一般ユーザーを作成してログインしてからsu -でrootユーザーにスイッチしましょう。

 今回の一撃シェルスクリプトが実行する処理の内容・順番は、以下のとおりです。

  1. OSインストール直後の各種設定(iptables、パッケージのアップデートほか)
  2. Apache(httpd)とPHPのインストール
  3. サーバー運用ツール「VHMAINTE」の生成
  4. 後処理とOSの再起動

 最初にお断りしておきますと、今回の一撃シェルスクリプトを実行しただけでは、バーチャルホストの設定は一切インストールされません。のっけから看板に偽りありと思われるかもしれませんが、バーチャルホストの設定をハードコードしてしまうと、その後の運用(バーチャルホストの追加/削除)のたびに、このスクリプトを動かさなければならなくなります。

 パッケージのアップデートやインストール、再起動の処理を含むスクリプトなので、case文などで引数を見て動作を変えるという手もありますが、スクリプトの保守性が落ちる上に、オペミスで意図しない動作をしてしまうリスクを孕むことにもなってしまいます。なので、この一撃シェルスクリプトは運用ツールを生成した上で、1回きりの動作を完遂したあとはスパイ大作戦のように「なお、このシェルスクリプトは自動的に消滅する」という動きにしています。

構築するホスティング環境の仕様

 今回構築するホスティング環境は次の仕様としています。

  • バーチャルホスト管理ユーザーのホームディレクトリは /home/vhosts/ホスト名/
  • バーチャルホストのドキュメントルートは /home/vhosts/ホスト名/public_html
  • バーチャルホストのログディレクトリは /home/logs/ホスト名/

 運用ツールの仕様は次のとおりです。

  • 実行者はroot
  • 運用ツールのフルパスは /root/bin/VHMAINTE
  • 運用ツールが読み込む設定ファイルは /root/etc/VHLIST

 運用ツールに引数createを与えて実行したときには、設定ファイルに書かれたバーチャルホストとユーザーを作成します。引数deleteを与えて実行したときには、設定ファイルに書かれたバーチャルホストとユーザーを削除します。なお、削除時には、ログファイルとユーザーのホームディレクトリをバックアップします。

 設定ファイルの書式は次のとおりです。

作成時の/root/etc/VHLIST書式
create www.example.com admin P@sSw0rD
削除時の/root/etc/VHLIST書式
delete www.example.com admin

 次ページから、一撃シェルスクリプトの中身を見ていきます。

 今回の一撃シェルスクリプト(ファイル名:INSTALLER)は、本記事のタイトル下にある[ダウンロード]をクリックすると入手できます。

次のページ
1. OSインストール直後の各種設定(iptables、パッケージのアップデートほか)

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
ツールがなくてもサーバー構築でたじろがない! 一撃シェルスクリプト道場連載記事一覧

もっと読む

この記事の著者

濱田 康貴(ハマダ ヤスタカ)

サーバーエンジニアとして主にLinuxのWEBサーバーを設計、構築、運用を行っています。運用ツールの相棒としてシェルスクリプトやワンライナーは心強いパートナーと信じて疑わず、ブログでTIPSを公開しています。2009年5月のUSP友の会活動開始より参画し、現副会長。最近では、USP友の会で「一撃サーバー構築シェルスクリプト勉強会」を開催しているほか、日本で唯一のシェルスクリプト総合誌『シェルスクリプトマガジン』(毎月25日発売)で、隔月(偶数月号)連載「教えて先輩 サーバー運用お助けTips」を執筆しています。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8434 2015/04/02 19:58

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング