ド素人でもできるWordPressのHerokuへの最短セットアップ


前提条件

bashが使える環境(MacやUNIXなど)を想定しています。

下記のサイトなどを参考に

  • herokuのアカウントを作る
  • heroku toolbeltをインストールする

www.dcom-web.co.jp

セットアップする

1行目のHEROKUAPPの値を書き換えて、ターミナルに全体をコピペするだけ。
(場合によっては、2行目でダウンロードするファイルのバージョンをその時の最新に合わせる)

HEROKUAPP=my-blog

curl -O https://ja.wordpress.org/wordpress-4.6-ja.zip
unzip wordpress-4.6-ja.zip
mv wordpress/ $HEROKUAPP
cd $HEROKUAPP/

git init
git add .
git commit -m "import"

echo 'web: vendor/bin/heroku-php-nginx' > Procfile
echo '{}' > composer.json

heroku create $HEROKUAPP
heroku addons:add cleardb -a $HEROKUAPP
heroku addons:add sendgrid -a $HEROKUAPP

curl -o salt.txt https://api.wordpress.org/secret-key/1.1/salt/
AUTH_KEY=`grep "'AUTH_KEY'" salt.txt | sed "s/.*'\\([^']*\\)');/\\1/"`
SECURE_AUTH_KEY=`grep "'SECURE_AUTH_KEY'" salt.txt | sed "s/.*'\\([^']*\\)');/\\1/"`
LOGGED_IN_KEY=`grep "'LOGGED_IN_KEY'" salt.txt | sed "s/.*'\\([^']*\\)');/\\1/"`
NONCE_KEY=`grep "'NONCE_KEY'" salt.txt | sed "s/.*'\\([^']*\\)');/\\1/"`
LOGGED_IN_SALT=`grep "'LOGGED_IN_SALT'" salt.txt | sed "s/.*'\\([^']*\\)');/\\1/"`
NONCE_SALT=`grep "'NONCE_SALT'" salt.txt | sed "s/.*'\\([^']*\\)');/\\1/"`
rm salt.txt

heroku config:set  -a $HEROKUAPP \
AUTH_KEY="$AUTH_KEY" \
SECURE_AUTH_KEY="$SECURE_AUTH_KEY" \
LOGGED_IN_KEY="$LOGGED_IN_KEY" \
NONCE_KEY="$NONCE_KEY" \
AUTH_SALT="$AUTH_SALT" \
SECURE_AUTH_SALT="$SECURE_AUTH_SALT" \
LOGGED_IN_SALT="$LOGGED_IN_SALT" \
NONCE_SALT="$NONCE_SALT"

DATABASE_URL=`heroku config -a $HEROKUAPP | grep CLEARDB_DATABASE_URL | sed 's/^.* //'`

DB_NAME=`echo $DATABASE_URL | sed 's/.*cleardb.net\/\([^?]*\).*/\1/'`
DB_USER=`echo $DATABASE_URL | sed 's/mysql:\/\/\([^:]*\).*/\1/'`
DB_PASSWORD=`echo $DATABASE_URL | sed 's/mysql:\/\/[^:]*:\(.*\)@.*/\1/'`
DB_HOST=`echo $DATABASE_URL | sed 's/.*@\(.*\)\/.*/\1/'`

cat wp-config-sample.php |
sed "s/'DB_NAME', '.*'/'DB_NAME', '$DB_NAME'/" |
sed "s/'DB_USER', '.*'/'DB_USER', '$DB_USER'/" |
sed "s/'DB_PASSWORD', '.*'/'DB_PASSWORD', '$DB_PASSWORD'/" |
sed "s/'DB_HOST', '.*'/'DB_HOST', '$DB_HOST'/" |
sed "s/'AUTH_KEY',.*'.*'/'AUTH_KEY', getenv('AUTH_KEY')/" |
sed "s/'SECURE_AUTH_KEY',.*'.*'/'SECURE_AUTH_KEY', getenv('SECURE_AUTH_KEY')/" |
sed "s/'LOGGED_IN_KEY',.*'.*'/'LOGGED_IN_KEY', getenv('LOGGED_IN_KEY')/" |
sed "s/'NONCE_KEY',.*'.*'/'NONCE_KEY', getenv('NONCE_KEY')/" |
sed "s/'AUTH_SALT',.*'.*'/'AUTH_SALT', getenv('AUTH_SALT')/" |
sed "s/'SECURE_AUTH_SALT',.*'.*'/'SECURE_AUTH_SALT', getenv('SECURE_AUTH_SALT')/" |
sed "s/'LOGGED_IN_SALT',.*'.*'/'LOGGED_IN_SALT', getenv('LOGGED_IN_SALT')/" |
sed "s/'NONCE_SALT',.*'.*'/'NONCE_SALT', getenv('NONCE_SALT')/" > wp-config.php

git add Procfile composer.json wp-config.php
git commit -m "set up"
git push heroku master
heroku open

最後に自分がセットアップしたWordPressがブラウザで開かれます。