前回までで、ロリポップのサブドメインプランでもマルチサイト化する手順をご説明しましたが、今回はその実験中に私がドツボにはまった点をご紹介します。
1.wp-config.phpの書き換え時のエラー
最初にコードを書き換えて、再ログインした途端、ログイン画面に出たエラー。
Warning: Cannot modify header information – headers already sent by (output started at /home/users/x/xxxxx-xxx.xxx/web/wp209/wp-config.php:110) in /home/users/x/xxxxx-xxx.xxx/web/wp209/wp-login.php on line 104
Warning: Cannot modify header information – headers already sent by (output started at /home/users/x/xxxxx-xxx.xxx/web/wp209/wp-config.php:110) in /home/users/x/xxxxx-xxx.xxx/web/wp209/wp-login.php on line 104
なんとなく、「104行目におかしなところがあるよ」という意味なのは分かったので、エディタで開いてみたところ、104行目は記述の最後。
なんのことはない。「?>」 より後ろに、空の改行があったせいでした。
教訓その1:wp-config は必ず、?> で終わっていること!
余計な改行とか入れないように注意しましょう。
2.認証ユニークキーが入力されていないというエラー
無事ログインできて、サイトネットワーク管理のコントロールパネルを開いたところ、wp-config.phpで書き換えたはずの認証ユニークキーがうまく認識できていない様子。
注意: WordPress ではユーザー cookie を暗号化していますが、より安全性を高めるためには wp-config.php 内に以下のコードを追加する必要があります。
/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */ という行の上に以下のコードを追加してください。define( 'AUTH_KEY', '*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' );
define( 'SECURE_AUTH_KEY', 'xxxxxxxxxxxxxxxxxxxxxxxxx);
define( 'LOGGED_IN_KEY', 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx' );
define( 'NONCE_KEY', >'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' );
WordPressはver.2.6の時点で既に認証ユニークキーは導入されています。
今回新しく入力するように言われた認証ユニークキーはその下に追加で入れるべきものでした。
私はそれを間違えて、上書きで書き換えてしまっていたのです。
認証ユニークキーは、
- AUTH_SALT
- SECURE_AUTH_SALT
- LOGGED_IN_SALT
- NONCE_SALT
- AUTH_KEY
- SECURE_AUTH_KEY
- LOGGED_IN_KEY
- NONCE_KEY
の8つが必要だったのに、上書きした上4つ分が無かったためにエラー表示がにでていたわけです。
教訓その2:認証ユニークキーは追記であって書き換えではない!
3.サイトリンクが全て無効に?
マルチサイト化した後、これまで運営していたサイトを見てみたところ、トップページから別のページに移動するとすべて真っ白に。
テーマの変更が必要かと思ったりしてちょっと焦りましたが
管理パネルで、「設定」>>「パーマリンク構造」を再設定したらOKになりました。
QuickCacheを導入してるのでそちらが絡んでいたのかもしれません。
教訓その3:設定をもう一度見直しておこう
マルチサイト化することで、いくつか設定が書き換えられたり初期値に戻ったりするものがあるかもしれません。
私の場合、パーマリンク構造は別の値になっていました。慌てず騒がず設定をもう一度見直すことで解決することもあると思います。