WordPress MUのマルチサイト化

WordPress MUのインストール(3) - satake7’s memo」で一度は断念した WordPress MUのマルチサイト化ですが、DNSリダイレクトにしろ、Apacheの Redirectにしろ、転送がかかっているのにかわりはなく、「SEO的にどうなの?」というところに行き着いてしまいました。自分的には「URLが覚えやすけりゃいいじゃん」というくらいの認識なんですが、「検索エンジンで探すとせっかく独自ドメインとったのに、みんな同じ(転送先)ドメインで出てくるのって意味なくない?」なんて正論で突っ込まれるとグーの音も出ず。しかたがないので、もう一度マルチサイト化にトライしてみました。

WordPress MUのダウンロード

MUも 2.7が出ていますので、せっかくだから 2.7をインストールすることにします。

$ wget http://mu.wordpress.org/latest.tar.gz
$ wget http://wpmu-ja.googlecode.com/svn/trunk/ja.po
$ tar xzvf latest.tar.gz
$ cp -v ja.po wordpress-mu/wp-content/languages/
$ cd wordpress-mu/wp-content/plugins/
$ cp -r /home/www/WPMU/wp-content/plugins/wp-multibyte-patch/ ./
$ cp -r /home/www/WPMU/wp-content/plugins/Cimy_Swift_SMTP/ ./
$ cp -r /home/www/WPMU/wp-content/plugins/ktai_style/ ./
$ cp -r /home/www/WPMU/wp-content/plugins/ac_authenticator/ ./
$ cp -r /home/www/WPMU/wp-content/plugins/Multi_Site_Manager/ ./
$ cd ../themes/
$ cp -r /home/www/WPMU/wp-content/themes/akiyakko/ ./
$ cp -r /home/www/WPMU/wp-content/themes/light/ ./

最新版のダウンロード以外、ちょっと余計なことをしています。
まず、日本語リソース 2.7版がまだ作業中だったので、作業チームの trunkから勝手にもってきてしまいました(数日待てば公開されるはず)。
プラグインはいままで使っていた4つ「wp-multibyte-patch:日本語対応パッチ」、「Cimy_Swift_SMTP:外部メーラーを使う」、「ktai_style:携帯スタイル」、「ac_authenticator:ログイン認証」と今回トライする1つ「Multi_Site_Manager:マルチサイト」です。

準備

ダウンロードした wordpress-muを公開ディレクトリにコピーします。データベースの作成も忘れずに。

$ cp -r wordpress-mu/ /home/www/
$ cd /home/www/
$ chmod 777 wordpress-mu/
$ chmod 777 wordpress-mu/wp-content/
$ mysql -u root -p
mysql> create database wpmu;
mysql> grant all on wpmu.* to 'wpadmin'@'localhost' identified by 'password';

httpでアクセスするための準備もやっておきます。

$ e /etc/apache2/sites-available/my_site

NameVirtualHost *:80


 ServerName site.net
 DocumentRoot /home/www/wordpress-mu/
 ErrorLog /home/www/wordpress-mu/log/error.log
 CustomLog /home/www/wordpress-mu/log/access.log combined

/etc/apache2/sites-available/my_site
$ mkdir /home/www/wordpress-mu/log/
$ s /etc/init.d/apache2 restart

logディレクトリを掘っておくのを忘れると、Apacheの restart時に怒られて failされます。

インストール

Sub-domains方式を選択します。Sub-directories方式でも何回かトライしたのですが、毎度毎度破綻したのでサブディレクトリ方式はあきらめました。きっと何か設定をミスっているんだと思いますが、元々サブドメインでやるつもりだったので、深追いはしていません。その他はごく通常通りインストールします。

サイト追加の手順

1.ドメインを取る

確定したドメインを取ってから作りたいところですが、ドメインを確定する前にサイトを作る場合はテスト用として、hostsにドメイン名を設定しておきます。

192.168.1.251 site.net

C:\WINDOWS\system32\drivers\etc\hosts
2.Apacheのバーチャルホストの設定

上でやったようにドメインWordPress MUディレクトリに向けておきます。

3.Sitesでサイトを追加する


「サイト管理 >> Sites >> Add Site」でサイトを追加します。「Assign Blogs」というメニューがあって、これを使えばいいのかと思いがちですが、結論からいうとこれを使うとうまくいきません。やめておいたほうがいいです。
これはどういうことをするかというと、site1.netというサイトで blog1.site1.netと blog2.site1.netを作って、site2.netに blog2.site1.netを割り当てる機能で、そういうふうに「Assign Blogs」すると、site1.netから blog2が消えて、site2.netに blog2が移り、blog2.site2.netとなるようです。DBの中の site_idを書き換えているようですが、自分がちゃんと理解していないせいか、ブログとユーザ管理がぐちゃぐちゃになってアクセスできなくなってしまいました。
この件も含め、以降は試行錯誤の結果なので、環境その他によってはこの通りいかないかもしれません。あらかじめ予防線を張っておきます。

4.追加されたサイトの管理


「サイト管理 >> ブログ」をクリックするなどして、画面をリフレッシュすると「ダッシュボード」メニューに「New Site Created」が追加されます。
これをクリックすると新しく追加されたサイト「site.net」のログイン画面に切り替わりますので、「admin」でログインしてください。

  • サイト設定が一部引継がれていないところを修正します。アップロード容量やプラグイン設定などです。
  • 一般設定も見直します。「New Site Created」というブログタイトルも変更します。
  • その他、プラグインの設定など、クローン元の設定を参考に修正していきます。
5.ユーザの追加

これが悩むところです。新しく追加した site2.netでユーザを追加しても、ユーザ一覧で見るとそのユーザが参加しているのは元々の site1.netになっています。これを site2.netにするには、ダッシュボードから site2.netを選択して、ユーザ一覧からユーザをクリックして「ユーザの修正」の権限のところを「このブログでの権限なし」からそれ以外の権限にします。これでそのユーザをブログに参加させられます。

まとめ

要点は、「Sites >> Assign Blogs」をやらないことと、「New Site Created」を選択して修正すること、新しいサイトへのユーザの追加方法の3点でしょうか。うまくいくことを祈ります。