1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

XserverからさくらのレンタルサーバーへのWordPress移行ガイド(413エラーとの闘い)

Last updated at Posted at 2024-10-09

XserverからさくらのレンタルサーバーにWordPressを引っ越しする際に413 エラー(Request Entity Too Large)と闘った備忘録。
ある程度初級の方でもできるように、ちょっと細かめに解説してます!
結構長いので、必要箇所だけ見てもらえるといいと思います!

経緯

普段、WordPressのお引越し系はプラグインのAll in One Migrationを使う事がほとんどだった。
ごくまれに、テーマをDLしてDBもエクスポートしてphpMyAdminでインポートなどもあった。
今回もそのどちらかで行こうと思った時に、All in One MigrationとphpMyAdminのどちらでも「413 エラー(Request Entity Too Large)」で苦戦したのでその時の備忘録になる。

なにが起きたか?

  • All in One Migrationでデータをインポートしようとすると100%で止まる(413エラー)
  • .htaccessupload_max_filesize post_max_size memory_limit max_execution_time max_execution_time などは十分な値を設定していた
  • さくらのレンタルサーバーのphpMyAdminでDBのインポートを行おうとするとエラー(200MBくらい、これも413エラー)

何やっても413エラー。
DBとか細かくインポートしたらきっと大丈夫だと思うんだけど、そんなことはしたくない!ということで思い切ってやってみました。

前提

  • WordPressについて
  • ターミナルについて
  • SSHについて
  • レンタルサーバーについて

この辺は必要になるかと思います。
正直ある程度は見よう見まねできるとは思いますが自己責任で…。

XserverもさくらのレンタルサーバーもどちらともSSHが使えたので、今回はSSHで接続して色々やってみました。
FTPツールでもできると思いますが、時間がかかるので圧縮して転送する方法を選びました。

さくらのレンタルサーバーでSSHが使えるのは「スタンダードプラン」以上なので注意です(さくらのレンタルサーバー:SSHを利用したい)

ドメインの設定はサクラのレンタルサーバー側で済ませている前提です。

作業内容

大まかなステップとしては

  1. Xserverからデータをローカルにダウンロードする
  2. さくらのレンタルサーバーにデータをアップロードする

という流れになります。

Xserverからデータを落としてくる

Xserver側の作業としては次の通り。

  1. XserverにSSHで接続する
  2. 該当WordPressのデータ(WordPressのインストールディレクトリ丸ごと)を圧縮する
  3. DBをエクスポートする
  4. sqlデータと圧縮したデータをローカルにダウンロードする

1. XserverにSSH接続をする

SSHの設定はこちらのXserver公式の記事を参照

SSH接続するのに~/.ssh/configに設定情報を保存して

ssh xserver

で接続できる前提でいきます

2. WordPressデータを圧縮する

今回の圧縮形式はtar.gz形式を使用します。
Xserverだと~/ドメイン名/public_html/以下に公開データがあると思います。
今回は~/hoge.com/public_html/wpがインストールディレクトリという設定で進めてみます。
イメージとしては下記の通りです。

~/hoge.com/
└── public_html/
    └── wp/
        ├── wp-admin/
        ├── wp-content/
        │   ├── plugins/
        │   ├── uploads/
        │   └── thmemes/
        │       └── original-theme/
        ├── wp-includes/
        ├── wp-config.php
        └── その他諸々...

このWordPressを構成しているwpディレクトリをごそっと圧縮しちゃいます

public_html直下を圧縮するイメージです。DBもそのままお引越しするので、公開ディレクトリ以下の全部をそのまま移すというのがWordPressの設定もそのままでいけるのでわかりやすいと思います。ディレクトリ構成を変える場合には、WordPress側の設定も変わるので注意。

まずは該当ディレクトリに移動します

cd ~/hoge.com/public_html/

次に圧縮します

tar -czvf wordpress-files.tar.gz .

これでカレントディレクトリ(例だとpublic_html以下)の物を全て圧縮してwordpress-files.tar.gzというファイルを作ってくれます。
これでファイルの準備は完了です

3. DBをエクスポート

DBエクスポートするためにまずはDB情報を確認します。
まずはWordPressのインストールディレクトリに移動します。

cd ~/hoge.com/public_html/wp

インストールディレクトリにはwp-config.phpという、WordPressの設定ファイルがあります。
この中にDBの情報が入っているので調べます。

cat wp-config.php | grep DB_

こうすると

define( 'DB_NAME', 'db_name' );
define( 'DB_USER', 'db_user' );
define( 'DB_PASSWORD', 'db_pass' );
define( 'DB_HOST', 'mysqlXXXX.xserver.jp' );
define( 'DB_CHARSET', 'utf8' );
define( 'DB_COLLATE', '' );

のように表示されるはずです。
この情報を使ってsqlファイルを作成します。
次のコマンドを実行するんですが、後でファイルをダウンロードする際に楽なので、先ほど作ったwordpress-files.tar.gzがある階層と同じところに出力をしましょう

cd ~/hoge.com/public_html
mysqldump -u db_user -p db_name -h mysqlXXXX.xserver.jp > wordpress_export.sql

このdb_userdb_namemysqlXXXX.xserver.jpは先ほど調べた値に置き換えてください。
これでEnterを押すとパスワードを求められるので、調べたパスワード(例だとdb_pass)を入力して完了です。

これで必要なファイルが2つ揃ったので確認しましょう。
ls -laコマンドで該当ファイルがきちんとあるか確認してください。

~/hoge.com/
└── public_html/
    ├── wordpress_export.sql <=これと
    ├── wordpress-files.tar.gz <=これ
    └── wp/
        ├── wp-admin/
        ├── wp-content/
        │   ├── plugins/
        │   ├── uploads/
        │   └── thmemes/
        │       └── original-theme/
        ├── wp-includes/
        ├── wp-config.php
        └── その他諸々...

最後に、このディレクトリでpwdコマンドを実行してください。

pwd
/home/server_name/hoge.com/public_html

これは後でダウンロードするときに使います!

4. Xserverからローカルにデータをダウンロードする

作成したデータをローカルにダウンロードします。
今回はrsyncを使いますが、rsync以外でも、scpやFTPツールなど、使いやすい・やりやすい方法でいいと思います!

まずは、Xserverに繋いでいる場合にはexitをしてローカル環境に戻りましょう。

ファイルをダウンロードするディレクトリに移動します。
今回は~/projects/hoge.com/というところにダウンロードするという想定でやってみます。
ご自身の環境に合わせてください!

まずは該当ディレクトリに移動

cd ~/projects/hoge.com/

次にrsyncでダウンロードします
先ほどXserverで最後に出力したパスを使います

rsync -avz xserver:/home/server_name/hoge.com/public_html/wordpress_export.sql ./
rsync -avz xserver:/home/server_name/hoge.com/public_html/wordpress-files.tar.gz ./

これでダウンロードができるはずです
ここでxserverというのはssh接続のエイリアスの名前なので、~/.ssh/configで登録している名前に置き換えてください。

最後にls -laで確認してローカルにファイルがダウンロードできていたら完了です!
ファイルが重い場合には時間がかかるので、気軽に待ちましょう!

さくらのレンタルサーバーにアップロードする

さくらのレンタルサーバーの場合、Xserverとは違い公開ディレクトリをwww以下の任意の場所に設定できます。
公開フォルダの設定はさくらの公式のこちらの記事を参照

事前にデータベースを作成してください。作成方法はさくらの公式サイトを参照

やることとしては次の通り

  1. さくらのレンタルサーバーにSSH接続をする
  2. 公開ディレクトリの作成
  3. データをアップロード
  4. WordPressデータの解凍
  5. データベースのインポート
  6. wp-config.phpの設定

1. サクラのレンタルサーバーにSSH接続

SSHの設定はこちらの公式の記事を参照

SSH接続するのに~/.ssh/configに設定情報を保存して

ssh sakura

で接続できる前提でいきます

2. 公開ディレクトリの作成

今回はhoge.comというディレクトリを作成して、そこを公開ディレクトリにしようと思います。

cd ~/www/
mkdir hoge.com

これでディレクトリの設定は完了です。
さくらのコントロールパネルからも公開ファイルの設定を忘れずに!

アップロード時に使うのでここのパスを確認しておきましょう

pwd
/home/server-name/www/hoge.com

3. データをアップロード

Xserverからローカルにダウンロードしたファイルをアップロードします。
さくらサーバーからはexitしてローカル環境に戻ります。

まずはディレクトリ移動

cd ~/projects/hoge.com/

次にwordpress_export.sqlwordpress-files.tar.gzをアップロードします。
アップロード先は先ほどpwdで確認したパスになります。

rsync -avz ./wordpress_export.sql sakura:/home/server-name/www/hoge.com/
rsync -avz ./wordpress-files.tar.gz sakura:/home/server-name/www/hoge.com/

ここでsakuraというのはssh接続のエイリアスの名前なので、~/.ssh/configで登録している名前に置き換えてください。

これでアップロードは完了しているはずなので、さくらにSSH接続して~/www/hoge.com/ls -laをしてみて該当ファイルがあるか確認してください。
ファイルが大きいと時間がかかるので気長に待ってみてください。

~/www/
└── hoge.com/
    ├── wordpress_export.sql <=これと
    └── wordpress-files.tar.gz <=これがあるか確認

4. WordPressデータを解凍する

まずは該当ディレクトリに移動します

cd ~/www/hoge.com

次のコマンドを使って解凍します

tar -xzvf wordpress-files.tar.gz -C ./

ファイルが大きいと時間がかかりますので、気長に待ちましょう!

完了したら

~/www/
└── hoge.com/
    ├── wordpress_export.sql
    ├── wordpress-files.tar.gz
    └── wp/
        ├── wp-admin/
        ├── wp-content/
        │   ├── plugins/
        │   ├── uploads/
        │   └── thmemes/
        │       └── original-theme/
        ├── wp-includes/
        ├── wp-config.php
        └── その他諸々...

このように元通りになっていたら完了です!

5. データベースのインポート

次にデータベースのインポートを行います。
ここで使用する情報はサクラのレンタルサーバーで作成したデータベースの情報が必要になりますので用意してください!

まずはディレクトリ移動

cd ~/www/hoge.com/

次にインポートを行います。
必要な情報は

  • データベースのホスト名 (mysql1234.db.sakura.ne.jpとします)
  • データベース名(server-name_dbとします)
  • ユーザー名(server-name_userとします)
  • パスワード(passwordとします)

です

mysql -h mysql1234.db.sakura.ne.jp -u server-name_user -p server-name_db < ./wordpress_export.sql

これでインポートが完了するはずです。

6. wp-config.phpの設定

サクラのレンタルサーバーで作成したデータベースの内容にあわせて、wp-config.phpの内容を書き換えます。
まずは該当ディレクトリに移動します。WordPressがインストールされているディレクトリに移動してください。

cd ~/www/hoge.com/wp

ls- laをしてwp-config.phpがあったら正解です。

次にvimコマンドを使って書き換えます。

vimの使い方がわからない方は、さくらのコントロールパネルからファイルマネージャーを使って編集してもOKです!
このためだけにvimを触らなくてもいいと思うので、ご自身の楽な方で作業をしてください。

vim wp-config.php

変更する必要がある行は下記の通りで、先ほどデータベースのインポートをした際に使用した情報をそのまま入れます。

define('DB_NAME', 'server-name_user');

/** MySQL データベースのユーザー名 */
define('DB_USER', 'server-name_user');

/** MySQL データベースのパスワード */
define('DB_PASSWORD', 'password');

/** MySQL のホスト名 */
define('DB_HOST', 'mysql1234.db.sakura.ne.jp');

矢印(もしくはJ,K,H,Lキー)で該当行に移動して、iで編集モード、escで移動モード
編集が終わったら:wqで保存です。

移管作業完了

これでサーバー移管が完了しました!
ドメインの設定が完了している場合には、サイトURLを開くことでログインなど確認ができるはずです!
お疲れ様でした!

終わりに

今まではXserverに移管することがほとんどだったのですが、まさかこんな制限があるとは思いませんでした。
.htaccessで上限だけあげたらいけるっしょ!とか思ってた自分が恥ずかしいですね・・・
同じ悩みを抱えてる人がいたら役に立てたらと思います!

余談1:さくらのレンタルサーバーに問い合わせてみた

413エラーの連続でクリティカルヒットしてるときに、ここまで来たらきっとWebサーバー側のリミットにあたってるんだと思い問い合わせてみた。もしかしたらなんか設定値変えられるかも?とか淡い期待を抱いていました。
結論、「共用サーバーのこの設定値に関しては教えられないし変えられない」 との事。
知りたければ試してみてね☆ということ。
つまり、やってみて通った容量が閾値という事だ。
情報はおいてある、欲しけりゃ探せって事ですね。どこの海賊王ですか?
一応、サポートにデータを渡すとやってくれるみたいなことは言ってましたが、大概の場合、情報を渡す訳にもいかないので結果ダメですね

余談2: WordPressのファイルの圧縮について

WordPress運用では、バックアップファイルなどがありそれが異常に重たかったりします。
そういう場合には、古いのを削除してからtar.gzにした方が時間短縮になります。
また、今回はWordPressを構成するすべてのファイルを一括で移動しましたが、wp-content以下だけとかもありだと思います。

1
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?