KUSANAGI ドメイン設定SSL化まで自動化【新規WordPress】

自動KUSANAGIアイキャッチ

KUSANAGIの初期設定からWordPressの初期設定、ドメインの設定、SSL化まで全自動で行います。

対象となる人
  • 新しいサイトでKusanagiを使いたい
  • ドメインをすでに取得している
  • 面倒なので自動でインストールしたい

この記事でのやり方は、ドメインを所有していて新たにWordPressサイトを立ち上げる場合におすすめです。
別サーバーからの移転の場合は、ドメインの設定は後からの方がよいので、こちらの記事を参考にしてください。

アイキャッチ KUSANAGI 高速WordPress環境 全自動インストール 【稼働まで15分】

全自動で行う上での前提条件

ConoHa にDNSを登録していない、もしくは削除済み。使いたいドメインが登録してある場合は削除しておきましょう。

DNS削除

まだ、ConoHaに登録していない場合はこちらから登録しましょう。

700円クーポン付き

WordPressはKUSANAGI

ネームサーバーをConoHaに向ける

利用予定のドメインのネームサーバーをConoHaのものに設定します。

例えば、ムームードメインでドメインを取得した場合はコントロールパネルの左のメニューから「ネームサーバー設定変更」を選択して、「取得したドメインで使用する」にConoHaのネームサーバーを入力します。

ネームサーバー1「ns-a1.conoha.io

ネームサーバー2「ns-a2.conoha.io

設定後、「ネームサーバー設定変更」をクリックして確定しましょう。

ムームードメイン

あとは、ConoHaにサーバーを作成していきます。

新しくサーバーを追加

通常のKUSANAGIを利用する時同様に選択します。

プラン選択

 

ここでオプションの設定で、スタートアップスクリプトにスクリプトの内容を全て貼り付けます。オプション設定

スクリプトの内容

こちらから KUSANAGI自動インストールスクリプトをダウンロードして、必要な場所を編集します。

インストールスクリプト

#!/bin/bash

## WordPress 設定項目
readonly DOMAIN_NAME="xxxxx.com" # 使用したいドメイン名
readonly PROFILE="test" # プロファイル名
readonly WPLANG="ja"
readonly EMAIL='[email protected]' #メールアドレス
readonly WPTITLE="ブログの名前" #ブログタイトル
readonly WPADMINNAME="testuser" #WordPress管理ユーザー
readonly WPADMINPASS="testtest" #管理ユーザーパスワード
readonly DBNAME="dbtest" #データベース名
readonly DBUSER="dbuser" #データベースユーザー
readonly DBPASSWD="testdbtest" #データベースパスワード
readonly WPPLUGINS=("autoptimize" "wp-multibyte-patch")

## API
readonly API_TENANT_ID="xxxxx" # テナントID
readonly API_USERNAME="xxxxx" # APIユーザー名
readonly API_PASSWORD="xxxxx" # APIパスワード

readonly RECORD_TTL="3600"
readonly IP_ADDRESS=$(ip -4 addr show eth0 |grep "global" | awk '{print $2}' | cut -d "/" -f 1)

# ドメインをDNSに登録
yum -y install jq

# ConoHaのAPIを使用するためのトークンの取得
REQUEST_TOKEN_BODY="{\"auth\":{\"passwordCredentials\":{\"username\":\"${API_USERNAME}\",\"password\":\"${API_PASSWORD}\"},\"tenantId\":\"${API_TENANT_ID}\"}}" \

TYO1_RESPONSE=$( curl -f -X POST \
     -H "Accept: application/json" \
     -d "${REQUEST_TOKEN_BODY}" \
     https://identity.tyo1.conoha.io/v2.0/tokens )
TYO1_EXIT_STATUS=$?

TYO2_RESPONSE=$( curl -f -X POST \
     -H "Accept: application/json" \
     -d "${REQUEST_TOKEN_BODY}" \
     https://identity.tyo2.conoha.io/v2.0/tokens )
TYO2_EXIT_STATUS=$?

API_TOKEN=""
API_REGION=""
if [ ${TYO1_EXIT_STATUS} -eq 0 ]; then
    API_TOKEN=$(echo ${TYO1_RESPONSE}|jq --monochrome-output '."access"."token"."id"' | sed -e 's/"//g')
    API_REGION="tyo1"
elif [ ${TYO2_EXIT_STATUS} -eq 0 ]; then
    API_TOKEN=$(echo ${TYO2_RESPONSE}|jq --monochrome-output '."access"."token"."id"' | sed -e 's/"//g')
    API_REGION="tyo2"
else
    echo "failed to get token"
    exit 1
fi


# ConoHaのDNSにドメインを登録
readonly DOMAIN_UUID=$(curl -X POST  \
     -H "Accept: application/json" \
     -H "Content-Type: application/json" \
     -H "X-Auth-Token: ${API_TOKEN}" \
     -d "{ \"name\": \"${DOMAIN_NAME}.\", \"ttl\": 3600, \"email\": \"${EMAIL}\", \"gslb\": 0}" \
     https://dns-service.${API_REGION}.conoha.io/v1/domains | jq --monochrome-output '."id"' | sed -e 's/"//g')

# 登録したドメインにAレコードを登録
curl -X POST \
     -H "Accept: application/json" \
     -H "Content-Type: application/json" \
     -H "X-Auth-Token: ${API_TOKEN}" \
     -d "{ \"name\": \"${DOMAIN_NAME}.\", \"type\": \"A\", \"data\": \"${IP_ADDRESS}\", \"ttl\":${RECORD_TTL}}" \
     https://dns-service.${API_REGION}.conoha.io/v1/domains/${DOMAIN_UUID}/records


## KUSANAGI
yum update -y

mkp="mkpasswd -l 10 -s 0"

password=`$mkp`
passphrase=`$mkp`
dbpassword=`$mkp`

##ネットワーク設定
WWWUSER=httpd

## KUSANAGI 初期設定開始
expect -c "
set timeout -1
spawn kusanagi init --tz tokyo \
    --lang ja \
    --keyboard ja \
    --passwd $password \
    --phrase $passphrase \
    --dbrootpass $dbpassword \
    --nginx \
    --php7 \
    --ruby24
expect \"Which you using?(1):\"
send \"\n\"
expect \"KUSANAGI initialization completed\"
exit 0
"

## ユーザーのパスワードを保存
cat << EOF >> /etc/motd
================================================
kusanagi user password  : $password
kusanagi user passphrase: $passphrase
MySQL root password     : $dbpassword

To delete this message: rm -f /etc/motd
================================================
EOF


## WordPress プロビジョン
kusanagi provision --WordPress --wplang ${WPLANG} --fqdn ${DOMAIN_NAME} --email ${EMAIL} --dbname ${DBNAME} --dbuser ${DBUSER} --dbpass ${DBPASSWD} ${PROFILE}
systemctl start nginx

## WordPress  設定
WPHOST="/home/kusanagi/${PROFILE}"
WPROOT="${WPHOST}/DocumentRoot"
WPCONF=${WPROOT}/wp-config.php
WPCMD="/usr/local/bin/wp --path=${WPROOT}"
KUSANAGICMD='sudo -u kusanagi'
${KUSANAGICMD} ${WPCMD} core config --dbname=${DBNAME} --dbuser=${DBUSER} --dbpass=${DBPASSWD} --dbhost=localhost --locale=${WPLANG}
${KUSANAGICMD} ${WPCMD} core install --admin_user=${WPADMINNAME} --admin_password=${WPADMINPASS} --admin_email=${EMAIL} --url=https://${DOMAIN_NAME}/ --title=${WPTITLE}
${KUSANAGICMD} chown kusanagi.www ${WPCONF}
${KUSANAGICMD} chmod 0440 ${WPCONF}
${KUSANAGICMD} echo "define('FS_METHOD', 'direct');" >> ${WPCONF}
${KUSANAGICMD} chmod 0755 ${WPROOT}
${KUSANAGICMD} mv ${WPCONF} ${WPHOST}

## WordPress アップデート
${KUSANAGICMD} ${WPCMD} core update
${KUSANAGICMD} ${WPCMD} plugin update --all
${KUSANAGICMD} ${WPCMD} theme update --all
${KUSANAGICMD} ${WPCMD} core language update

## WordPress プラグインインストール
HTTPDCMD="sudo -u ${WWWUSER}"
chown httpd $WPROOT/wp-content/plugins
for i in "${WPPLUGINS[@]}"
do
    ${HTTPDCMD} ${WPCMD} plugin install $i --activate
done

##  デフォルトのテーマと不要なプラグインを削除
${KUSANAGICMD} ${WPCMD} theme delete twentyseventeen twentysixteen
${KUSANAGICMD} ${WPCMD} plugin uninstall hello

## ドメイン名 SSL
${KUSANAGICMD} kusanagi setting --fqdn ${DOMAIN_NAME{} ${PROFILE}
${KUSANAGICMD} kusanagi ssl --email ${EMAIL} ${PROFILE}
${KUSANAGICMD} kusanagi target ${PROFILE}
${KUSANAGICMD} kusanagi ssl --auto on
${KUSANAGICMD} kusanagi https redirect


編集箇所は下記の赤文字のところです。ブログタイトルは日本語でも大丈夫でした。パスワードはできるだけ複雑なものにしておくとよいでしょう。

## WordPress 設定項目
readonly DOMAIN_NAME="xxxxx.com" # 使用するドメイン名
readonly PROFILE="test" # プロファイル名
readonly WPLANG="ja"
readonly EMAIL='[email protected]' #メールアドレス
readonly WPTITLE="ブログの名前" #ブログタイトル
readonly WPADMINNAME="testuser" #WordPress管理ユーザー
readonly WPADMINPASS="testtest" #管理ユーザーパスワード
readonly DBNAME="dbtest" #データベース名
readonly DBUSER="dbuser" #データベースユーザー
readonly DBPASSWD="testdbtest" #データベースパスワード
readonly WPPLUGINS=("autoptimize" "wp-multibyte-patch")

## API
readonly API_TENANT_ID="xxxxx" # テナントID
readonly API_USERNAME="xxxxx" # APIユーザー名
readonly API_PASSWORD="xxxxx" # APIパスワード

テナントID、API ユーザー名、パスワードはコントロールパネルの「API」から取得できます。パスワードが設定されていないので、右の鉛筆アイコンを選択してパスワードを設定してから保存をクリックします。

 

API

スクリプトの内容を編集後、すべてコピーしてConoHaサーバー作成画面のスタートアップスクリプト欄に貼り付けてください。

あとは、右の追加ボタンを押すとサーバー構築が開始されます。完了まで15分程度かかるので待ちます。

https://ドメイン名.com/ にアクセスすると、SSLが適用されたWordPressの初期画面が表示されたら完成です。おつかれさまでした。

初期表示

ConoHa登録がまだなら

700円クーポン付き

WordPressはKUSANAGI

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です