1014 文字
5 分
1つのWordpressで、複数のブログを運用する設定(10行追加するだけ)

概要#

  • 1つのWordpressプログラムで複数のblogを運用したい人向けの記事です。
  • この記事で紹介する方法では、.htaccessを設置できる or サーバ上でシンボリックリンクを張れることが前提です。
  • この方法なら数行の変更と1つの小さな設定で新たなblogを構築できます。
  • Apache向けの設定です。(nginx用の設定ファイルは上手くかけませんでした。)

アプローチ#

Wordpressはblogの記事や設定値をデータベースに入れて保存しています。HTTPでアクセスしてきた時に、指定されたURLのpathによってWordpressが参照するテーブル(データベース)の場所を動的に変えることにより1つのWordpress設置で、複数のWordpressのblogを構築できます。

設定#

アクセスされたURLのpathとテーブル名の関連付けを行います。
編集するファイルは、Wordpress管理ディレクトリのトップにあるwp-config.phpです。

下の例は、
https://blog.teraren.com/
をメインとして運用して、
https://milklog.teraren.com/
をサブとして運用する場合の例です。

/blog/でアクセスされた場合は、テーブルのプレフィックス(先頭語)にデフォルトである”wp_“を利用します。
/~matsu/milkblog/でアクセスされた場合はプレフィックスに”wp_milklog_“を利用します。

prefixarrayは連想配列です。キーにURIを定義し、値に利用するテーブルのprefix(prefix_arrayは連想配列です。キーにURIを定義し、値に利用するテーブルのprefix(table_prefixに代入する値)を定義します。以下にdiffを載せておきます。

Terminal window
% rcsdiff -r1.1 -r1.3 wp-config.php
===================================================================
RCS file: RCS/wp-config.php,v
retrieving revision 1.1
retrieving revision 1.3
diff -r1.1 -r1.3
17a18,31
> // determine table prefix according to the REQUEST_URI
> $prefix_array = array(
> '/~matsu/milklog' => 'wp_milklog_'
> );
>
> 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;
> }
> }
>
>

次に、指定されたpathでアクセスできるように設定します。
2種類の設定方法があるのでどちらかを選択してください。SSHでログインできない場合は.htaccessによる設定を選んでください。

1 シンボリックリンク#

指定したpathでアクセスしたときに、Wordpressのファイルを参照するようにシンボリックリンクを張ります。
1つめの引数にWordpressの実態、2つめの引数に新たに追加するblogのpathを指定します。

Terminal window
# wordpressが設置されているディレクトリの上で。
% ln -s blog milk_log

2 .htaccess#

新たなpathでアクセスされたときにWordpressの実体へアクセスするようにする.htaccessです。
以下に例を載せておきます。

RewriteEngine on
RewriteBase /~matsu/
# rewrite milk blog
RewriteRule milklog/(.*) /blog/$1
RewriteCond %{REQUEST_FILENAME} !-f [OR]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule milklog/(.*) /blog/index.php [L]
# /end of rewrite milk blog

アイディア元はこちら。
http://ameblo.jp/curiouseverything/entry-10167447535.html

新しいblogの設定#

新しいblogのwordpress管理画面へアクセスするとblogの初期設定を行う画面が表示されます。

例:
https://milklog.teraren.com/wp-admin/

注意#

  • Wordpress2.5以降で動作確認しています。
  • Wordpressのアップグレードに影響されない普遍性の高い設定なので、おすすめです。
  • (2015/12/3) Worpress 4.3.xでも動作しております。
  • (2017/10/31) 共通のファイルを使用すると、テーマやプラグインの管理が煩雑になったり、共通ファイルをblogごとにカスタマイズしたい場合に要求を満たせなくなってきたので1ブログ、1つのWordpressにするようにしました。この方法自体は、今もなお有効です。

メリット#

  • Wordpress本体、plugin , themeのアップグレードが1発で終わる。
  • 新規ブログを立ち上げるのに、PHPファイルに数行追加、webサーバの設定に数行追加するだけで完了する。

デメリット#

  • 画像のアセットが保存されているディレクトリが1箇所なので、全部のブログの画像が1つのディレクトリに保存されてしまう。それによって、ブログを1つ消したときにそれに関連付いた画像を消すのが困難。
  • 上記と同様に同様に、テーマファイル、プラグインも混ざる。1つのブログで導入したプラグインが、全部のブログで表示されてしまっていまいち。
1つのWordpressで、複数のブログを運用する設定(10行追加するだけ)
https://blog.teraren.com/posts/multiple-wordpress-blog-one-install/
作者
Yuki Matsukura
公開日
2008-02-05
ライセンス
CC BY-NC-SA 4.0

コメント