[Server & Network General] 新生さくらのレンタルサーバへ WordPress を引っ越すための手順 (1)

「新生さくらのレンタルサーバ スタンダード」へ移行するための引っ越し手順。

## 契約

「新生さくらのレンタルサーバ」の特徴を3行でまとめる。

– PHP 7.2 モジュールモードで動かせる。
– ハードウェアが増強された。
– HTTP/2 に対応した。

こちらの新サイトから契約ができる。
手順は今までと変わらない。

> * [さくらのレンタルサーバ | Webサイトを速くする、新生さくらのレンタルサーバ](https://www.sakura.ne.jp/speedup/)

## サーバコントロールパネルの設定

契約が完了すると、メールでお知らせが届く。
サーバコントロールパネルの表示順に従って確認を進める。

> * [さくらインターネットサーバコントロールパネル](https://secure.sakura.ad.jp/rscontrol/rs/)

ちなみに「新サーバコントロールパネル(β版)」が公開されている。
今後の展開に期待。

### SSLサーバ証明書

Let’s Encrypt の導入もできる。
今回はサーバ証明書が既にあるのでスキップする。

> * [【無料SSL】サーバコントロールパネルからの導入手順 – さくらのサポート情報](https://help.sakura.ad.jp/hc/ja/articles/115000136822)

### サーバパスワードの変更

何はともあれパスワードを変更する。
初期パスワードは「仮登録完了のお知らせ」と言うメールに記載されている。

### サーバ情報の表示

Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz / 48GB
Apache v2.4.33
OS は Ubuntu になるのかなと思ったが FreeBSD 9.1 でした。
まだ ruby v1.8 系がディフォルトで残念。

– `IP アドレス` を確認しておく。

### メールに関する設定

メールは別サーバを運用しているのでスキップ。

### データベースの設定

WordPress 用のデータベースを作成する。
モダンな設定でありがたい。

– `MySQL 5.7` のみ選択可能。初期値で選択されている。
– 文字コードの選択肢に `utf8mb4` が存在し、初期値で選択されている。

### アクセスログの設定

必要な設定に変更する。

### PHPのバージョン選択

– `PHP 7.2.7 (モジュール版)` が初期設定済み。

### CRONの設定

CRONは5つまで設定可能。

### クイックインストール

クイックインストールで WordPress をインストールする。
インストールパスを以下に設定する。

– `com.example.www/wordpress`

> * [【クイックインストール】WordPress(ブログ)のインストール – さくらのサポート情報](https://help.sakura.ad.jp/hc/ja/articles/206054702–%E3%82%AF%E3%82%A4%E3%83%83%E3%82%AF%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB-WordPress-%E3%83%96%E3%83%AD%E3%82%B0-%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)

ディフォルトで以下のプラグインがインストールされていた。
有効化はされていない。

– Akismet Anti-Spam (アンチスパム)
– All In One WP Security
– Autoptimize
– Disable Google Fonts
– Hello Dolly
– ImageMagick Engine
– Protect Uploads
– Remove Query Strings From Static Resources
– SAKURA RS WP SSL
– TS Webfonts for SAKURA RS
– WP Multibyte Patch

### 国外IPアドレスフィルタ

wp-login.php のようなファイルやディレクトリへのアクセスを制限してくれるそう。
ディフォルトでオンとなっている。

> * [国外IPアドレスフィルタ – さくらのサポート情報](https://help.sakura.ad.jp/hc/ja/articles/206054272)

### Webアプリケーションファイアウォール

様子を見て利用を検討する予定。
ひとまずスキップ。

### バックアップ & ステージング

[BackWPup](https://ja.wordpress.org/plugins/backwpup/) プラグインから、こちらに切り替えを予定。
ひとまずスキップ。

Snapup というサービスと連携することで、バックアップを最大8、ステージング環境を1つ用意する事ができる。

> * [【バックアップ&ステージング】バックアップ&ステージングとは – さくらのサポート情報](https://help.sakura.ad.jp/hc/ja/articles/115000205582)

### ドメイン/SSL設定

ドメインと DNS は他社のサービスで管理している。

「新しいドメインの追加 > 他社で取得したドメインを移管せずに使う > 他社で取得された独自ドメインのサブドメインを追加」を選択する。

– `stg.example.com`

「ドメイン詳細設定」を行う。

– 「wwwを付与せずマルチドメインとして使用する(上級者向け)」を選択する。
– 「マルチドメインの対象のフォルダをご指定ください」に `com.example.www` を設定する。
– 「SSLの利用をお選びください」は「共有SSL、SNI SSLを利用しない」としておく。

なお、2018/08 から「初期ドメイン、さくらのサブドメイン」でもサーバ証明書が無料で利用できるようになるそう。

> * [さくらインターネット、さくらのサブドメイン向けSSLサーバー証明書を無料提供 | さくらインターネット](https://www.sakura.ad.jp/information/pressreleases/2018/07/24/1968197458/)

__他社の DNS 管理サービスでの作業__

– サブドメイン `stg` の A レコードに「新しいさくらのレンタルサーバの IP アドレス」を登録する。
– 設定の反映を待つ。設定したサブドメインで「このサーバは、さくらのレンタルサーバで提供されています。」画面が表示されれば OK 。

コントロールパネルに戻り、「ドメイン/SSL設定」の一覧より「SSL証明書 > 登録」を選択する。
ステージング用に「無料SSL証明書」を設定する。
ワンクリックで設定が完了、かつ自動更新される!

## WordPress ステージング環境の整備

初期設定を行う。

– 現行サイトと同じ管理者を作成しておく。
– 必要に応じて「検索エンジンがサイトをインデックスしない」ように設定する。

### Basic 認証

公開前の環境なので Basic 認証を設定する。
ファイルマネージャーが楽。

> * [[Server & Network] SAKURA レンタルサーバで Basic 認証などのアクセス制限をする | deadwood](https://www.d-wood.com/blog/2016/02/25_7812.html)

### サイトアドレスの調整

WordPress の「ダッシュボード > 設定 > 一般」からドメインを設定する。

– WordPress アドレス (URL) `https://stg.example.com/wordpress`
– サイトアドレス (URL) `https://stg.example.com/wordpress`

### HTTPS 対応

[さくらレンタルサーバ上の WordPress の HTTPS 対応は手間だった](https://www.d-wood.com/blog/2017/01/05_8721.html)が、下記のプラグインを利用することで簡単になった。

WordPress の「ダッシュボード > 設定 > SAKURA RS SSL」から設定する。

> * [【WordPress】常時SSL化プラグインの使い方 – さくらのサポート情報](https://help.sakura.ad.jp/hc/ja/articles/115000047641)
> * [【WordPress】常時SSL化プラグイン トラブルシューティング – さくらのサポート情報](https://help.sakura.ad.jp/hc/ja/articles/115000051662)

### 追加のリダイレクト設定

WordPress 以外の HTML ファイルの提供があれば、必要に応じて .htaccess による http -> https 転送の設定を行う。
サイトの構成に応じて、以下のサンプルも書き換えが必要。

> * [.htaccessによるアクセス制御 – さくらのサポート情報](https://help.sakura.ad.jp/hc/ja/articles/206054622#ac09)

編集対象は `www/com.example.www/.htaccess` となる。

“`prettyprinted:/home/user_name/www/com.example.www/.htaccess
SetEnvIf REDIRECT_HTTPS (.*) HTTPS=$1

RewriteEngine on
RewriteCond %{ENV:HTTPS} !on
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

“`

必要に応じて www ありの URL に統一する設定を行う。

> * [【詳細設定|上級者向け】wwwというホスト名の有無を統一する – さくらのサポート情報](https://help.sakura.ad.jp/hc/ja/articles/206054882–%E8%A9%B3%E7%B4%B0%E8%A8%AD%E5%AE%9A-%E4%B8%8A%E7%B4%9A%E8%80%85%E5%90%91%E3%81%91-www%E3%81%A8%E3%81%84%E3%81%86%E3%83%9B%E3%82%B9%E3%83%88%E5%90%8D%E3%81%AE%E6%9C%89%E7%84%A1%E3%82%92%E7%B5%B1%E4%B8%80%E3%81%99%E3%82%8B)

また初期ドメインを独自ドメインにリダイレクトする設定を行う。

> * [[Server & Network] さくらのレンタルサーバの初期ドメインを独自ドメインにリダイレクトする設定 | deadwood](https://www.d-wood.com/blog/2017/01/05_8718.html)

編集対象は `www/.htaccess` となる。

“`prettyprinted:/home/user_name/www/.htaccess

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(example\.com)$ [OR,NC]
RewriteCond %{HTTP_HOST} ^(www\.)?example\.sakura\.ne\.jp$ [NC]
RewriteRule .* https://www.example.com%{REQUEST_URI} [R=301,L]

“`

## SSH / SFTP 公開鍵認証設定

お好みで SSH / SFTP に公開鍵認証の設定を行う。

> * [[Server & Network] SAKURA レンタルサーバに SSH 公開鍵認証を設定する | deadwood](https://www.d-wood.com/blog/2016/02/23_7804.html)

ローカル環境からさくらのサーバへパスワードで ssh 接続できることを確認する。

“`prettyprinted
% ssh @
:
Welcome to FreeBSD!

$ exit
“`

ローカルに戻り `~/.ssh/config` を設定する。

“`prettyprinted:~/.ssh/config
Host example
UseKeychain yes
AddKeysToAgent yes
ForwardAgent yes
PreferredAuthentications publickey
Hostname
User
Port 22
IdentityFile ~/.ssh/id_rsa
“`

RSA認証鍵を作成する。

> * [[macOS] ssh: 鍵作成とconfigによる複数ホストの管理 | deadwood](https://www.d-wood.com/blog/2013/05/17_3620.html)

“`prettyprinted
% cd ~/.ssh
% ssh-keygen -t rsa -f id_rsa
“`

作成した公開鍵をさくらのサーバへ SCP する。

“`prettyprinted
% scp ~/.ssh/id_rsa.pub @:/home//.ssh/authorized_keys
“`

さくらのサーバへ接続し、authorized_keys のパーミッションを変更する。

“`prettyprinted
% ssh example

$ chmod 600 .ssh/authorized_keys
$ exit
“`

SFTP も公開鍵認証を設定できる。

> * [[macOS] Transmit: SFTP 接続に鍵認証を利用する | deadwood](https://www.d-wood.com/blog/2014/03/25_5891.html)

以上で、基本的な WordPress サイトの準備は完了となる。
新規サイト開設も同じような手順となる。

## ToDo

ここまでの積み残しは以下の通り。

– 「WordPress」のデータ・テーマ・プラグイン移行の全般。
– 「ドメイン/SSL設定」の本番環境への切り替え。
– 「Webアプリケーションファイアウォール」の設定を保留。
– 「バックアップ & ステージング」の設定を保留。

つづく。