AMIMOTOのwp-setupコマンドを覗いてみる

この記事はAMIMOTO Advent Calendar 2015 – Adventar11日目兼和歌山ITカーニバルでのハンズオン参加者向けのちょっとした補足です。

横着だとなんだと言われようが思いついちゃったんだから仕方ない。

wp-setupとは?

AMIMOTOで立ち上げたサーバーに用意されているコマンドの1つで、コマンド1つでWordPressを新規に立ち上げることができるとても便利なやつです。

[bash]
//AMIMOTO EC2にSSHでログイン
$ ssh -i ~/.ssh/sample.pem ec2-user@55.456.234.12

//rootユーザーになる
$ sudo su –

//立ち上げたいサイトのドメイン名を入力する
# wp-setup example.com
[/bash]

これだけでEC2の中に2つめのWordPressがインストールされます。

公式サイトでもWordPressを複数インストールしたいんだけど…という記事の中で使い方を紹介されています。

それにしても、 wp-setup example.jp が便利すぎて泣きそうw

Posted by 西川 伸一 on 2012年10月31日

これを紹介するだけだとあんまりにもあんまりなので、中身でも見てみましょう。

wp-setupを覗いてみる

wp-setupコマンドを探す

まずはwp-setupのスクリプトがどこにあるかを探します。
[bash]
# which wp-setup
/usr/local/bin/wp-setup

# ll /usr/local/bin/wp-setup
-rwxr-xr-x 1 root root 489 Oct 23 01:47 /usr/local/bin/wp-setup
[/bash]
「/usr/local/bin/wp-setup」というファイルに書かれている様子です。

wp-setupの中身を見る

[bash]
#!/bin/sh
if [ $# -ne 0 ]; then
SITENAME=$1
else
while :
do
echo -n "please input site name: "
read SITENAME
if [ "$SITENAME" != "" ]; then
break;
fi
done
fi

if [ -f /var/www/vhosts/$SITENAME/wp-config.php ]; then
exit 0
fi

echo "start…"
echo ""

cd /tmp/
/usr/bin/git clone git://github.com/megumiteam/amimoto.git
if [ -f /tmp/amimoto/wp-setup.sh ]; then
/bin/sh /tmp/amimoto/wp-setup.sh $SITENAME
fi
/bin/rm -Rf /tmp/amimoto

echo ""
echo "…done"
[/bash]

いろいろ書かれていますね。

1つ1つ解説すると日が昇ってしまいますのでざっくり書きますと、
[bash]
#!/bin/sh
if [ $# -ne 0 ]; then
SITENAME=$1
else
while :
do
echo -n "please input site name: "
read SITENAME
if [ "$SITENAME" != "" ]; then
break;
fi
done
fi

if [ -f /var/www/vhosts/$SITENAME/wp-config.php ]; then
exit 0
fi
[/bash]
ここでwp-setupの後ろに値を入れているかを確認しています。
作ろうとしているドメイン名がすでに使われている場合は処理が中断されます。

echoと書かれている部分は黒い画面に進捗報告してるだけなので割愛して、重要な部分はこちら
[bash]
cd /tmp/
/usr/bin/git clone git://github.com/megumiteam/amimoto.git
if [ -f /tmp/amimoto/wp-setup.sh ]; then
/bin/sh /tmp/amimoto/wp-setup.sh $SITENAME
fi
/bin/rm -Rf /tmp/amimoto
[/bash]

amimotoのリポジトリからソースコードを取得してwp-setup.shというシェルスクリプトを実行、最後に取得してきたものを削除しています。

はい。スクリプトの中身はサーバーの中にないんですね。

これはwp-setupのシェルスクリプト内にWPのバージョンの定義やプリインストールプラグインの設定などが書かれているため、常に最新版のスクリプトを使えるようにするための措置・・・じゃないかなぁと推測しています。

「セットアップのコマンドをカスタマイズしたいんや!」という勇者な方は、ここの処理をご自身の責任で書き換えていただいてカスタマイズされることで自分好みにカスタマイズされたwp-setupコマンドが利用できます。

ただし何かあったときにサポートしてもらえる可能性ががっつり下がると思いますので、事故っても自力で復旧できるぜという方以外は本気でお勧めしません。

というわけで2日遅れのAMIMOTOアドベントカレンダーネタでした。

和歌山ITカーニバルでのスライド

Follow me!