<h3前提
- ローカル(MAMP)にwordpressを「wordpress」等のディレクトリ内にインストールしている。
- ローカルにてすべての記事、画像、投稿が済んでいる
- 本番サーバはroot(www)直下にwordpressを展開
- プラグイン使用なし
1.ローカル上のphpmyadminからSQLダウンロード
とくになにもせずに.sqlをエクスポートで一括ダウンロード
それなりな容量の場合はdump使用向けの設定で
2.本番サーバにDBを設定
さくらインターネットの場合)
サーバコントロールパネルから「データベースの設定」に。
初期選択がeucのため、utf-8で作成
3.本番サーバにDBを移行
phpmyadminから先ほどダウンロードしたsqlを
一括インポート(容量が少なければ)
容量が多い場合はdump使用
4.本番サーバにFTPでアップロード
root直下にまるっとアップロード
容量やファイル数が多いのでローカル上にてtar.gz圧縮後、sshで展開の方が楽
5.wordpressの設定を本番に変更
wp-config.phpを本番サーバーからダウンロードし、
下記内を編集
/** WordPress のためのデータベース名 */
define(‘DB_NAME’, ‘本番サーバーデータベース名’);
/** MySQL データベースのユーザー名 */
define(‘DB_USER’, ‘本番サーバーユーザー名’);
/** MySQL データベースのパスワード */
define(‘DB_PASSWORD’, 本番サーバーパスワード’);
/** MySQL のホスト名 */
define(‘DB_HOST’, ‘本番サーバーデータベースアドレス’);
編集後同場所にアップロードし、
hogehoge.com/wp-admin/に正常に(とりあえず)移動できることを確認。
6.DB上の色々な所を修正
変更場所
- ドメインがlocalhostの箇所
- /wordpress/wp-content/○○とかの箇所
プラグインがある訳ではないので
phpmyadminから直接置換
○「wp_option/siteurl/option_value」を正しいアドレスに
もしくは下記のSQL文で一括置換
UPDATE wp_options SET option_value=REPLACE(option_value,"旧ドメイン","新ドメイン");
○wp_posts内のguid(localhost→本番サーバー)が
“htttp://localhost:8888/〜”とか”htttp://localhost:8888?p=〜”になっているはずなので、
下記のSQL文で一括変換
UPDATE wp_posts SET guid=REPLACE(guid,"旧ドメイン","新ドメイン");
○また、固定ページや投稿等でimgを呼び出している場合、
urlが/wordpress/wp-content/〜になってしまっているので、それを
/wp-content/〜に変換する必要がある。
下記のSQL文で一括変換
UPDATE wp_posts SET post_content=REPLACE(post_content,"/wordpress/wp-content/","/wp-content/");
○meta情報もいれているなら
UPDATE wp_postmeta SET meta_value=REPLACE(meta_value,"旧ドメイン","新ドメイン");
なお、プラグインがある場合は手動変換だと厳しいらしいので下記のリンク参照に
http://dogmap.jp/2012/09/20/wordpress-replace-siteurl/
後は、phpでたまに<?php bloginfo(‘template_url’); ?>を使わずに、
生urlを使ってしまっていたりする場合(/wordpress/wp-content/〜)があるので、
そこを外観→「テーマの編集」から手動で置換
以上で移行OKなはず
追記/
こっちの方が安全!
WordPress移行時にURLをSQLで直接一括置換はダメ! 「Search and Replace for WordPress Databases Script」を使おう
元https://interconnectit.com/products/search-and-replace-for-wordpress-databases/