【GCE】ワクワクドキドキ!初めてのサーバー移行


初めてロリポップのサーバーからGCPにサーバー移行したことのことを書いておきます。
GCPの構築は、下記で書きました。
【SRE/GCE】あっちはWordpressでー、こっちはNuxtにトラフィックを飛ばしたい - Qiita

手順

  • Wordpressのバックアップ、アップロード
  • phpmyadminのバックアップ、アップロード
  • 各設定見直し
  • マーケ周りも含め影響がないか確認

実行

Wordpressのバックアップ

データの取得

FTPで現状のwordpressのディレクトリのデータを取ってきます。
写真だけをダウンロードしてくるのであれば、/wp-content/uploads/ディレクトリ配下のファイルをダウンロードしてきてください。

データのアップロード

FTP使って、指定のサーバーにアップロードします。

phpmyadminのバックアップ

エクスポート

バックアップをとるデータベースを指定し、エクスポートを実行します。
この中にwordpressの記事のデータが含まれています。
絶対に失敗しないWordPressの移行手順!データベースからファイル一式をバックアップして移行する方法 | Recooord | ホームページ制作で扱うコード・プログラムを掲載

インポート

移動先のphpmyadminのサーバーにアクセスし、インポートを実行します。

設定見直し

wp3_optionssite_urlhomeの書き換え

table_prefix

wp-config.phptable_prefixwp なのか wp3 なのか確認しておきましょう。
GCPのmarketplaceで wordpress を構築すると、wpでデータベースが作られることに注意です。

/**
 * WordPress データベーステーブルの接頭辞
 *
 * それぞれにユニーク (一意) な接頭辞を与えることで一つのデータベースに複数の WordPress を
 * インストールすることができます。半角英数字と下線のみを使用してください。
 */
$table_prefix  = 'wp3_';

apache2.conf

<Directory /var/www/html/>
  Options Indexes FollowSymLinks
  AllowOverride All
  Require all granted
</Directory>

.htaccessの設定見直し

下記のように設定しました。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /media/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /media/index.php [L]
</IfModule>

# END WordPress

無限ループ脱出

wp-config.phpに下記を追加します。

$_SERVER['HTTPS'] = 'on';
$_ENV['HTTPS'] = 'on';

エックスサーバーでWordpressをSSL化(https)する時に無限ループでハマった - Qiita

プラグイン入れれるように

define('FTP_HOST', 'FTP ホスト名');
define('FTP_USER', 'FTP ユーザー名');
define('FTP_PASS', 'FTP パスワード');

WordPressのプラグインをインストールする方法と出来ない4つの原因 | 株式会社バズったー

画像アップロード問題

画像のアップロードができない事象が発生しました。
下記記事にあるように permission を 707にすることで解決することができました。

コマンド
chmod -R 707 uploads

wordpress でメディアのアップロードができないときの対処 – Linux & Android Dialy

DNSサーバーの移行

お名前.comからGCPのDNSサーバーに移行することを想定します。

Google DNS

ゾーンを作成し、dnsサーバーの情報をメモしておきます。

【GCP】お名前.comとCloud DNSの連携【385日目】 - エンジニアのひよこ_level10

お名前.com

「他のネームサーバーを利用」をクリックし、先ほどメモしたGoogle DNSのネームサーバーを入力し、実行します。

2時間くらいで適応されるようになります。

反省点

広告のことを考慮していなかった

広告のことを考慮せずに移動してしまったので、使えないURLに無駄な広告を垂れ流してしまっていました。
ここら辺、もう少しマーケの人とコミュニケーション取るべきでした、ごめんなさい。

その他参考にした記事

[WordPress] GCPのComputeEngineのインスタンスにFileZillaを使って簡単にファイルを転送できるようにする(Mac) | nobuhiroharada.com
GCPで爆速なWordPressを爆速で構築しSSL化する9手順 - SSL代行ラボ
phpMyAdminでWordPressのデータをバックアップ&リストアする方法 \ | 東京のWeb制作会社LIG