harumaki.net

インフラ屋の覚書や、ラーメン食べある記とか。

トラブルシュート メモ

wordpressメモ、サイトのURLを変更する際のテーブル操作

投稿日:2014年5月21日

職場でイントラ用に利用しているwordpressサイトを別サーバーに引っ越した際、サイトURLのメンテを忘れてしまい、後から手動で直すことに。

直す必要があるのは”WordPress アドレス”に該当するフィールド”home”とサイトアドレスに該当する”siteurl”と思われるので、この二つを探してみることに。

テーブルの数がデフォルト状態で少なかったので、ちょっと手間をかけて各テーブルのフィールドを色々調べてみたところ
wp_optionsテーブル内のoption_nameフィールドにあるカラムにhomeを発見。

mysql> select * from wp_options where option_name='home';
+-----------+-------------+----------------------------------------+----------+
| option_id | option_name | option_value                           | autoload |
+-----------+-------------+----------------------------------------+----------+
|        37 | home        | http://intranet.example.com/wordpress  | yes      |
+-----------+-------------+----------------------------------------+----------+
1 row in set (0.00 sec)

あわせてsiteurlも調べてみたら、同様に発見。

mysql> select * from wp_options where option_name='siteurl';
+-----------+-------------+----------------------------------------+----------+
| option_id | option_name | option_value                           | autoload |
+-----------+-------------+----------------------------------------+----------+
|         1 | siteurl     | http://intranet.example.com/wordpress  | yes      |
+-----------+-------------+----------------------------------------+----------+
1 row in set (0.00 sec)

option_idの値がなぜかhomeよりsiteurlのほうが若いが、siteurlは1、homeは37で決まっている様子?あるいはバージョンにより変わるのか、暇なときにでも調べてみる。

ひとまずこの二つを直せばいけそうなので、そのままupdateをかましてみる。
update分を実行するときのwhere句での指定は、option_nameでなくoption_idで該当のIDを指定。

修正例としては
http://intranet.example.com/wordpress

http://intranet.example.jp/wordpress
で。

1.homeの設定値を手直し

mysql> update wp_options
    -> set option_value='http://intranet.example.jp/wordpress'
    -> where option_id=37;
Query OK, 1 row affected (0.07 sec)
Rows matched: 1  Changed: 1  Warnings: 0
 
mysql> select * from wp_options where option_id=37;
+-----------+-------------+---------------------------------------+----------+
| option_id | option_name | option_value                          | autoload |
+-----------+-------------+---------------------------------------+----------+
|        37 | home        | http://intranet.example.jp/wordpress  | yes      |
+-----------+-------------+---------------------------------------+----------+
1 row in set (0.00 sec)
		
mysql>

2.siteurlの設定値を手直し

mysql> update wp_options
    -> set option_value='http://intranet.example.jp/wordpress'
    -> where option_id=1;
Query OK, 1 row affected (0.06 sec)
Rows matched: 1  Changed: 1  Warnings: 0
 
mysql> select * from wp_options where option_id=1;
+-----------+-------------+---------------------------------------+----------+
| option_id | option_name | option_value                          | autoload |
+-----------+-------------+---------------------------------------+----------+
|         1 | siteurl     | http://intranet.example.jp/wordpress  | yes      |
+-----------+-------------+---------------------------------------+----------+
1 row in set (0.00 sec)
	
mysql>

と、ここまで直した後で
WordPress Codexに解説があるのを発見…初めからここを見ればよかったorz

-WordPress Codex : Changing The Site URL
http://codex.wordpress.org/Changing_The_Site_URL

とりあえず作業の進め方は問題なかった様子なのと、サイトのリンクの更新も確認できたので、ひとまずOK。

備考

間に合わせとして、wp-config.php内に設定値を固定で指定することもできる様子。

 define('WP_HOME','http://intranet.example.jp');
 define('WP_SITEURL','http://intranet.example.jp');

ただし、この対応だと、いかにも場当たり的な対処になるので、あまりやるべきではないかな、と。
wp-config.phpを見れば判るからこちらのほうが良い、という人もいるかもだけどw

-トラブルシュート, メモ
-

執筆者:


comment

メールアドレスが公開されることはありません。

CAPTCHA


関連記事

no image

ただのメモ:cron実行内容をloggerを使ってログファイルに書き出す

crontabでジョブを実行する際、標準出力やスクリプト内にechoで出力した内容を パイプにてloggerコマンドを使って/var/log/messagesへ書き出す。 オプション”-t …

[Windows]NTttcp.exeで帯域を測定してみる

  社内LANにある端末のスループット調査にて、マイクロソフト謹製のNTttcp.exe(ttcpのNT版、という位置づけの様子)を使ってみることに。 普段はiperfのお世話になることが多いが、今回 …

[MySQL]db接続エラーのメモ(max_connectionsメモ)

  割と初歩的なメモ。環境としては、OSはCentOS6.5、MySQLはRPM版5.5(Remi)です。 開発中のPHPのAppサーバーからdbサーバーへアクセスする際、コネクションエラーでアクセス …

no image

サーバー構築をする時のミクロな悩み:環境変数

※RedHat、CentOSでのbash環境での話です。 サーバー構築をする時、定石として一番悩ましいのが”環境変数をどこに明示するか?”なのですが いろいろ悩んだ末の結論とし …

[DB]FireBirdをインストールしてみた(RPM編)

FireBird2.5をVPSを利用して、CentOS6環境でささっといじってみました。 epelリポジトリで提供されているパッケージを使えたので、セットアップは楽でした (yum を最初に利用する際 …