ボールを蹴りたいシステムエンジニア

ボール蹴りが大好きなシステムエンジニア、ボールを蹴る時間確保の為に時間がある時には勉強する。

WordPressサーバー環境移行で404発生やら管理画面ログイン出来なかった時の対処メモ

別環境のWordPressをローカルに持ってきた時に思うように動かずハマったので変更点を整理

WordPress設定ファイル修正

wp-config.php
これは基本ですね。
とりあえず見て、環境に応じて変更。

DBのオプションデータ変更

ここを変更しないと、ログインしても元環境URLに飛ばされてローカルの管理画面に入れない。
ちょっとハマった

サイトURL

update hoge_options
set 
option_value="http://localhost"
where 
option_name = "siteurl"

サイトアドレス (URL)

update hoge_options
set 
option_value="http://localhost"
where 
option_name = "home"

記事パーマリンク

update ofa_posts set guid =
REPLACE (guid, "http://hoge.com/", "http://localhost")

なんかエラー出た

Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect.	0.000 sec

どうやらMysqlWorkbenchでは、
safe modeになってるから、key指定してないと、更新や削除という事らしい

MysqlWorkbenchのUPDATEでエラーが出る: onishiの開発日記

上記ページを参考にして設定変更後、MysqlWorkbenchを再起動して
改めてupdate文実行。

出来た。

続いて、記事URL?のカラムでも変更

update ofa_posts set guid =
REPLACE (guid, "http://hoge.com/", "http://localhost")

設定変更後、管理画面へログインしてみる

設定変更後、管理画面にログインすると

データベースの更新が必要です
WordPress が更新されました。ご利用いただく前に、データベースを最新バージョンに更新する必要があります。

って出たので
とりあえず、それにそって「WordPressデータベースを最新」をクリック

ログインできた。
けど管理画面のUIが違う。。。
WordPressバージョンの違いだろうか、よくわからないけどログインできたから良しとしよう。

Apaceh設定

で、各ページを確認。
個別ページと投稿ページ全て404エラー発生。
まだ変更する所があるみたい。

色々調べてみた所、
パーマリンク設定で「カスタム構造」以外の場合では問題無く表示されていたので、
ApacheのRewrite関係かなと思い調査。

ビンゴ

WordPress構築時に自動的にルートディレクトリに.htaccessが生成され、
WordPressでは基本的に.htaccessを見るのですが、
.htaccessを使う場合はApacheでAllowOverrideをAllに設定する必要が有り。

httpd.conf

<Directory "D:/htdocs">

    AllowOverride All

設定変更して再起動後、無事全ページ表示されました。


参考
http://wp.fsv.jp/guide/server-shift/