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

自動KUSANAGIアイキャッチ

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

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

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

目次

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

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

DNS削除

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

\ 700円クーポン付き! /

  • 約1ヶ月無料で使おう

ネームサーバーを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の初期画面が表示されたら完成です。おつかれさまでした。

初期表示

\ 700円クーポン付き! /

  • 約1ヶ月無料で使おう
自動KUSANAGIアイキャッチ

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

気になるガジェットやサービスをレビュー!日常生活のアップデートを目標に役に立つ情報を掲載していきます。

仕事のご依頼などはお問い合わせからどうぞ。

目次