2008年11月19日 21時51分40秒 テーマ:ワードプレス

ワードプレスでのブログ複数設置方法(その2)

前回 の予告通り、ワードプレスでブログを複数設定する具体的な方法を書きます。

前回書いたとおり、シンボリックリンク(ln)が使えなくても、設定可能です。
ホスティングサーバー側の条件は、以下の2つだけ
  • ワードプレスが動作する
  • .htaccess内で、mod_rewrite.c が利用可能
1番目は当たり前として、2番目についてはホスティング会社さんに問い合わせた方が早いと思います。
ちなみにうちは、Firstserver で無事稼働することを確認しました。


では、設置設定方法の手順です。
今回、WordPress 2.6.3 で実施しました。
  1. 適当なフォルダで、WordPressを正常動作する状態でインストールする
    ここについては、細かい説明はしません。
    まずは、ふつうに1つインストールして下さい。
    ここでは、 /wordpress にインストールしたことを前提に話を進めます。

  2. wp-config.php を、複数ブログ用に編集する
    まつぼっくりんごさんのページ を参考に、ほぼそのままコピペします。
    1つ注意が必要なのが、挿入する場所です。
    2.6と旧バージョンの違いだと思いますが、リンク先にあるdiffのとおり17行目以降に挿入しても正常動作しません
    $table_prefix = ....」の後ろに挿入する必要があります。
    参考までに、実例を書いておきます(青字が挿入した文字列)。

    // テーブルの接頭辞を指定します。複数設置する場合など適宜変更してください。
    $table_prefix = 'wp_'; // 半角英数字と下線のみが使用できます。
    // determine table prefix according to the REQUEST_URI
    $prefix_array = array(
    '/wordpress' => 'wp_' ,
    '/test' => 'wp_test_'
    );
    if($prefix_array){
    $uri = $_SERVER['REQUEST_URI'];
    foreach($prefix_array as $search_uri => $search_table_prefix){
    if(strpos($uri, $search_uri) === false){ continue; }
    $table_prefix = $search_table_prefix;
    }
    }

    '/test' => 'wp_test_'」が、フォルダ名とテーブルプレフィックスを関連付けるための行ですので、ここを任意変更してください。
    ここでは、「/test」に追加ブログを設定します。

  3. フォルダ作成と、.htaccessの設置
    コンテンツルートに「/test」を作成後、その中に .htaccess を保存してください。
    記述内容は、以下の通りそのままでOKです(たぶん)。
    おっと、.htaccssなので、最後の改行を忘れないようにしてください。
    Options FollowSymLinks Includes
    RewriteEngine On

    RewriteRule (.*) /wordpress/$1 [L]
    RewriteRule . /wordpress/index.php [L]
  4. 「http://www.~~~.com/test/wp-admin/install.php」にアクセスする
    これで、見慣れたセットアップページが表示されます。
    wp_setup

  5. ここで、タイトルとメールアドレスを入力して「WordPressをインストール」をクリックすれば、一瞬でセットアップ完了です。

以上です。
簡単でしょ?
MySQLサーバーに接続するためのID/PWを何度も入力しないで済むのもイイところですね

同様に、wp-config.php のマッピング行を増やすのと連動して.htaccessの置いてあるフォルダを増やしていけば、WordPressを1回インストールだけなのにいくらでも複数ブログ設定することが可能です。
当然1回しかインストールしかしてないので、いくらブログを複数作っても、バージョンアップとかの作業はベースになっているワードプレス1つをアップグレードすればOKです。
プラグインも、私が試した範囲では正常動作しました。
一部動作しないプラグインがあるらしいので、クリティカルなプラグインであれば最初に検証しておいた方がいいでしょう。

これで、MovableTypeからWordPressに乗り換える上でのハードルが一つなくなったのではないでしょうか?


でわまた音譜


コメント

[コメントをする]

1 ■ご指摘&コメントありがとうございます。

.htaccessの制御の方が汎用性高そうでいいですね。

私は以下のような.htaccessを予想していました。

#-------------------------
RewriteEngine On

# for /test/
RewriteRule test1/(.*) /wordpress/$1
RewriteRule test2/(.*) /wordpress/$1
RewriteRule test3/(.*) /wordpress/$1
RewriteCond %{REQUEST_FILENAME} !-f [OR]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule test/(.*) /wordpress/index.php [L]
#-------------------------

記事にある.htaccessだと、子供のブログへのリクエストの際に、画像やCSSの参照ができなくなってしまうと思ってました。

たとえば、
/test/wp-contents/hoge-theme/style.css
へリクエストがあったときに、理想は、ファイルシステム上の
/path/to/wordpress/wp-contents/hoge-theme/style.css
を参照して欲しいのに、
/path/to/test/wp-contents/hoge-theme/style.css
を参照してしまい、ファイルが存在しないことになると思います。

2 ■>まつぼっくりさん

ご指摘のような問題は、意外なことに出ていません。
RewriteRule の左辺には親フォルダ情報が省略されたパス情報が代入されているんでしょうか・・・?

実は当初、以下のような書き方をしていました。
でも、「いちいち RewriteBase を書きなおすの面倒くさいなぁ」と試しに削ってみたら、意外と動いてくれました(^-^)
で、そのままブログ掲載しちゃいました(笑)

-- /test/.htaccess --------
RewriteEngine On
RewriteBase /virtual/www/test/

RewriteRule (.*) /wordpress/$1 [L]
RewriteRule . /wordpress/index.php [L]
-- eof:/test/.htaccess --------

もし具体的な問題が見つかったら、またレポートします

3 ■無題

こんにちは。ディレクトリ名も同じくやってみましたが、
/test/wp-admin/install.php
にアクセスすると500 errorです。
なにか考えられる原因はあるでしょうか?

4 ■Re:無題

>tomoさん
もし、wp-config.php をデフォルトに元に戻すと正常に動作するようでしたら、手動で変更した箇所のどこかに入力ミスがあると思います。
カンマ(,)やセミコロン(;)の過不足が発生しやすいので注意してください。

コメント投稿

一緒にプレゼントも贈ろう!

トラックバック

この記事のトラックバック Ping-URL :

http://trb.ameba.jp/servlet/TBInterface/curiouseverything/10167034407/fab6ceae

  • 1 ブログタイトル:そうだ。ブログを書こう!
  • 記事タイトル:ブログを複数インストールする
  • 記事概要:ワードプレス2.7をダウンロードして、wp_config.phpを見ると、以下のように記述してあるので、複数設置できるようになったんだなー。いつかやろーと思っていたんだけど、今回ちょうど日本語サイトと英語サイトを作ることになったので、どうするのか調べてみた。 // テーブ
  • 2 ブログタイトル:デジコム
  • 記事タイトル:WordPressでブログを複数設置する方法のまとめ
  • 記事概要:同じホスティングスペース内にWordPressを複数設置する方法について、書きたいと思います。 以前、マツボックリさんのサイトを参考に「ワードプレスでのブログ複数設置方法(その2)」...

Amebaおすすめキーワード

    アメーバに会員登録して、ブログをつくろう! powered by Ameba (アメーバ)|ブログを中心とした登録無料サイト