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

この記事はAMIMOTO Advent Calendar 2015 – Adventar11日目兼和歌山ITカーニバルでのハンズオン参加者向けのちょっとした補足です。 横着だとなんだと言われようが思いついちゃ […]

広告ここから
広告ここまで

目次

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

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

    wp-setupとは?

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

    [bash]
    //AMIMOTO EC2にSSHでログイン
    $ ssh -i ~/.ssh/sample.pem [email protected]

    //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カーニバルでのスライド

    [slideshare id=56075866&doc=amimoto-151212081813]

    広告ここから
    広告ここまで
    Home
    Search
    Bookmark