当初、せっかくなので 1GB VM x 2 がずっと無料で使えると一部で話題の Oracle Cloud Platform の Always Free Services にチャレンジしてみようと思ったが、インスタンスを作るところで “Out of host capacity” と言われて挫折。申込みが殺到していて、雲の中で物理キャパが足りていない模様です。来週またチャレンジしてみる予定。中の人がんばれ!
仕方がないので、個人で借りている EC2 の一部を間借りすることに。このインスタンスではすでに別の WordPress サイトが動いているので、ミドルウェア的には準備 OK。インスタンスのサイズは t2.micro なので Mem 1GB。自己所有ドメイン(DNS は Route53)に CNAME co-jp-rc を追加。ちなみに co-jp-rc は『某サイト.co.jp の RC(Release Candidate)』という意味。
次に、Web サーバにバーチャルホストを追加する。
$ cd /etc/nginx/conf.d
$ sudo vi co-jp-rc.conf
# /etc/nginx/conf.d/co-jp-rc.conf
server {
listen 80;
server_name co-jp-rc.example.com;
# 大きめのファイルをインポートするので制限を緩和(nginx)
client_max_body_size 512m;
root /var/www/co-jp-rc;
index index.html index.htm index.php;
fastcgi_read_timeout 3600;
access_log /var/log/nginx/co-jp-rc_access.log;
error_log /var/log/nginx/co-jp-rc_error.log;
try_files $uri $uri/ /index.php?$args;
location ~ \.php$ {
try_files $uri = 404;
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATHINFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
# 大きめのファイルをインポートするので制限を緩和(php)
# 後述の All-in-One WP Migration で必要になる。
fastcgi_param PHP_VALUE "
upload_max_filesize=512M
post_max_size=512M
memory_limit=256M
max_execution_time=300
max_input_time=300";
}
# Disallow access
location ~ /\.(ht|git|svn) {
deny all;
}
location = /robots.txt {
deny all;
}
# Don't record access to favicon
location = /favicon.ico {
access_log off;
log_not_found off;
}
}
# 文法チェック
$ sudo nginx -t
WordPress の追加インストールには wp-cli を利用する。インストールすると wp コマンドが使えるようになる。以下のような感じで新しい WordPress サイトを追加できる。
$ mkdir /var/www/co-jp-rc
$ cd /var/www/co-jp-rc
$ wp core download --locale=ja
$ wp config create --dbname=co-jp-rc --dbuser=root
$ wp db create
$ wp core install \
--url=co-jp-rc.example.com \
--title=WP-CLI \
--admin_user=wpcli \
--admin_password=wpcli \
--admin_email=hotta@example.com
# コンテンツファイルの所有者を合わせておかないと、プラグインの削除等で認証を聞かれて困る。
$ sudo chown -R nginx.nginx .
# 設定の反映
$ sudo systemctl restart nginx
これで仮の WordPress サイトが動き出したので、wpcli/wpcli でログイン。wp コマンドで指定したこのクレデンシャル(認証情報)が有効なのは最初だけ。この後すぐに別サイトの中身をインポートで被せるので、クレデンシャル含めて消えてなくなる。
データベースの更新が必要とか言われるのでポチッと。すぐに終わる。
管理画面に入ったら、Web サイトの引っ越しに重宝すると評判の(?) All-in-One WP Migration をインストール。メニューに “All-in-One WP Migration” が現れるので、別サイトで All-in-One WP Migration でエクスポートした xxxx.wpress ファイルを指定してインポート。
これで某サイトのクローンができました。自動的に管理画面からはじき出されるので、『某サイト』側の認証情報を使ってログインし直します。今日はここまで。
(参考情報)
コメント