2012-07-13
先日debianをwheezyにアップグレードしたらWordpressサイトがおかしくなってしまいました。
今日は金曜日なので気分的に余裕があり、ちょっと気合いを入れて再度wordpressをアップグレードして対処してみました。index.phpから順番に処理の流れを追って行って、どこでwp-config.phpを読み込んでいるのかを見てみました。結局以前は/etc/wordpress/wp-config.phpが私のシステムでは読み込まれていたのですが、今回のパッケージでは/usr/share/wordpress/wp-config.phpが読み込まれていました。
本来ならwp-config.phpの場所が変わっても大丈夫なはずなのですが、wp-config.phpを直接書き換えて複数サイトを保持できるようにしていたことの弊害が出ちゃった形です。
結局以下のように書き換えて対応。
26a27,29
> } elseif (file_exists('/etc/wordpress/config-'.$debian_server.str_replace("/", "_", dirname($_SERVER['PHP_SELF'])).'.php')) {
> require_once('/etc/wordpress/config-'.$debian_server.str_replace("/", "_", dirname($_SERVER['PHP_SELF'])).'.php');
> define('DEBIAN_FILE', '/etc/wordpress/config-'.$debian_server.str_replace("/", "_", dirname($_SERVER['PHP_SELF'])).'.php');
変数化しろよ!とかあると思いますが。php知らないので文法調べるのすらめんどくさい…。
その後もpluginやthemeが/usr/share/wordpress/wp-contentから/var/lib/wordpress/wp-contentに場所が変更になった影響で色々と動かないサイトがあったり動かないプラグインがあったりでかなり時間取られちゃいました。やっぱり勝手に改造してるとこういうときに大変ですねぇ……。
wordpressが標準でマルチサイト対応になったようなのでそちらに乗り換えてもいいかもしれないですが…、しばらくはいいかなぁ……。