マルチサイトの構築

 2010年12月18日(土)
WordBench埼玉勉強会
(株)デジコム 加藤 芳威
今日の話の流れ
•   キーワード
•   通常版とマルチサイト
•   メリット・デメリット
•   マルチサイトの起動手順
•   サイトの作成
•   ドメインマッピング
お願い
• 特に質問の時間は設けません。話の途中でもい
  いので、いつでもご質問ください。
• 今回は管理画面等セキュリティ上あまり他者に
  見せない画面も表示します。
  スクリーンショット(写真撮影)は構いませんが、
  IDやアカウントリストが載ってるような画面ではご
  自粛願います。
• 間違いがあれば、是非ご指摘願います。
  というか、教えてください!
  セミナーじゃなくて「勉強会」なので。
キーワード

まず全員の言葉を
共通化しましょう
キーワード(1)
• MS
 – 「マルチサイト」の略。
 – 3.0以降は「マルチサイト」という呼び方が標準の模様
 – 3.0以降はこの2文字を含む関数等が多数存在する
• MU
 – 「マルチユーザー」の略。
 – 3.0の前は、WordPress MU(えむゆー or みゅー)
   という派生版があった。
 – 以前から使っている人からは時々耳にするが、マル
   チサイトと同義と取ってよい
キーワード(2)
• ネットワーク
 – ネットワークそのマルチサイトの「親」にあたるサイト。
 – 1つのWordPressに1つの「ネットワーク」が存在する。
• サイト
 – いわゆる「子サイト」。
 – 1つの「ネットワーク」に
   複数の「サイト」が存在する
 – 「孫」は作れない
 – Codexや関数内では「blog」で
   登場することが多い
キーワード(3)
• ドメイン名
 – 一般的には、URLのうち「www」を除いた部分。
 – 例えば www.example.com であれば「example.com」の部
   分
• サブドメイン名
 – abc.example.com のうち「abc」の部分
 – マルチサイトをサブドメイン型で起動した場合、
   この名前が複数作成されていく。
• ドメインエイリアス/パークドメイン/他
 – Apache等のHTTPサーバーが受け付ける別名の登録
 – サブドメイン型にする場合、この設定が出来るかどうかが
   重要になる。(ホスティングサーバーに依存)
通常版とマルチサイトの違い

   何がどう違うの?
違い①:ユーザーテーブルが1つ
• インストールしたWordPressで1つの管理にな
  ります。
• サイト毎にアカウントを作ることはできません。
• 個別にアカウントを作れない代わり、アクセス
  出来るサイトおよびアクセス権限をそれぞれ
  設定できます。
• 作成したアカウントは全てネットワークには所
  属します。
違い②:フォルダ構成が変わる
• 通常版では、画像等のブログコンテンツは全
  て“wp-content/uploads”の中に格納される。
• マルチサイトでは、” wp-content/blogs.dir/##”
  に格納されます(##はサイトID)
違い③:テーブル構成が変わる
シングルサイト                     マルチサイト(設定直後)
•   wp_commentmeta          •   wp_blogs
                            •   wp_blog_versions
•   wp_comments             •   wp_commentmeta
•   wp_links                •   wp_comments
                            •   wp_links
•   wp_options              •   wp_options
•   wp_postmeta             •   wp_postmeta
                            •   wp_posts
•   wp_posts                •   wp_registration_log
•   wp_terms                •   wp_signups
                            •   wp_site
•   wp_term_relationships   •   wp_sitemeta
•   wp_term_taxonomy        •   wp_terms
                            •   wp_term_relationships
•   wp_usermeta             •   wp_term_taxonomy
•   wp_users                •   wp_usermeta
                            •   wp_users
メリット・デメリット

 何が良くなる?
  何がだめ?
マルチサイトのメリット
• テーマやプラグインを個別にインストールする
  必要が無い
• 管理アカウントを統合できる
• サーバーを統合できる
• 同一DB内に全てのデータがあるので、
  使い回しや連携が(理論上)可能。
マルチサイトのデメリット
• 動かないプラグイン・テーマがある
• どのサイトにログインしているのか、
  違いが分かりにくい
• 負荷の問題(?)
• sitemap.xmlが簡易に作成できない
• サブドメイン型で運用したい場合は、サー
  バーの制約が出てくる。
マルチサイトの場合
   サーバーの選択が結構重要
• VPSサーバーがサブドメイン型で構築するに
  当たっては一番楽だが、apache,mysql,php等
  に関して細かいセッティングが必要
• 共用サーバーの場合、全くできない場合も多
  いが、サイトによっては「ドメインエイリアス」
  や「パークドメイン」という設定項目名のところ
  で数個~100個程度まで登録を許可されてい
  る場合がある。
マルチサイト起動手順

マルチサイト化してみましょう
1. 「ツール ->ネットワーク」を表示す
             る
• (おそらく)安易にマルチサイトにされないよう、
  デフォルトでは設定メニューが隠れている。
• wp-config.phpに以下の設定を入れると、「ツー
  ル」の中に「ネットワーク」という項目が登場する

 define( 'WP_ALLOW_MULTISITE', true);

• どこに挿入してもいいが、分かりやすいように上
  の方に入れた方が良いと思う。
wp-config.php 設定前
wp-config.php 設定後
2. マルチサイトの方式を決定する

• サブドメイン型



• サブディレクトリ型
サブドメイン型
• サブドメインが増えていきます
 – http://www.example.com/
    • http://site1.example.com/
    • http://site2.example.com/
    • http://site3.example.com/

• WordPressをコンテンツルート直下にインストールして
  おく必要があります。
• 正しくDNSやHTTPサーバーの設定を行う必要がありま
  す。
• 共用サーバーでは、サブドメイン型が利用できない場
  合があります。
サブディレクトリ型
• サブディレクトリが増えていきます。
 – http://www.example.com/
   • http://www.example.com/site1/
   • http://www.example.com/site2/
   • http://www.example.com/site3/


• 特別な設定は一切不要なので、
  どんなサーバーでも利用可能です。
• どのフォルダー配下にインストールしてあっても
  マルチサイト化出来ます。
サブディレクトリ以下でも可能
• サブドメイン型の場合、さらに深い階層にイン
  ストールして利用する事も出来ます。

 – http://www.example.com/network/
   • http://www.example.com/network/site1/
   • http://www.example.com/network/site2/
   • http://www.example.com/network/site3/
3. 事前にプラグインを止めておきま
         しょう
4. [ツール]->[ネットワーク]を開く
5. サブドメイン型を選択して
     「インストール」
       • 指示に従って、
         – wp-config.php
         – .htaccess
         両ファイルを更新する
       • wp-config.phpに指示の
         コードを挿入する際、最
         初に挿入した行は削除
         しても良い。
       • 更新が完了すると、強
         制的にログアウトされる。
6. 再ログイン
7. 「特権管理者」のメニューが
     出来ていれば成功
必ず設定した方がいい箇所
• [特権管理者]->[設定]
 – アップロードの設定
   • メディアアップロードのボタン
   • サイトのアップロード容量
   • アップロードファイルの最大サイズ
 – ネットワーク全体の設定
   • 初期言語設定
[特権管理者]->[設定]
      • デフォルトではアップロー
        ドボタン用が無いので、
        必要なものにチェックを
        入れましょう。
      • 「サイト」毎に容量制限が
        出来ます。そのデフォル
        ト値を設定しましょう
      • アップロードファイルの最
        大サイズは「1500」より増
        やさない方が無難です。
      • なぜか「英語」になってる
        ので「Japanese」に変更す
        る。
サイトの作成

いよいよサイトの作成です
「サイト」の作り方
1. サイトの追加

2. DNSの設定
   (ワイルドカード設定されていれば不要)

3. ドメインエイリアス(パークドメイン)の登録
   (ワイルドカード設定されていれば不要)
「サイト」作成の実演

実際に作ってみましょう
テーマが選べない?
• 各サイトは、特権管理者が許可したテーマ以
  外選択できません。
• 全員に許可してよいテーマであれば、「テー
  マ」で許可。
• 個別に設定する場合は、各サイトの設定内で
  対象のテーマにチェックを入れる必要があり
  ます。
ドメインマッピング

サブドメインなんてヤダ!
ドメインマッピングとは
• サブドメインで運用しているサイトを、全く別
  の独自ドメインに置き換えて運用することが
  出来る。
• アカウントを統合管理しつつ、外目には全く別
  管理のサーバーのように見せかけることが出
  来る。

※共有サーバーでは、そのサーバーの制約で
 出来ない場合があります。
WordPress MU Domain Mapping
• 恐らく最も一般的な、ドメインマッピング用プラ
  グイン

• 手順は若干多いが、比較的簡単にマッピング
  が出来ます。
ドメインマッピング手順

     本作業は全て
「ネットワーク」で行ってください
1.プラグインインストール
「WordPress MU Domain Mapping」
を普通にインストールして有効化。
※ネットワークで起動する
※必要はありません
インストールが完了すると、
「特権管理者」のところに
メニューが増えます。
2. ファイルコピーと設定追加
• 「Domain Mapping」の項目をクリックすると以
  下のメッセージが出るので、指示通りにファイ
  ルをコピーする。元ファイルはプラグインフォ
  ルダ内にあります。
• wp-config.php には、以下の1行を追加する
  define( 'SUNRISE', 'on' );
      Please copy sunrise.php to
      /home/****/public_html/wp-content/sunrise.php
      and ensure the SUNRISE definition is in
      /home/****/public_html/wp-config.php
3. サーバーのIPアドレスを登録


        【補足】
        当日「ラウンドロビンの時だけ必要と書いてある。書か
        なくても正常に動作している」との情報ありました。
        このプラグインを使い始めた当初書かないとうまくいか
        ない記憶があったのですが、勘違いor バグ改善と考え
        られます。
        この設定は基本空欄で、正常に機能しない場合に設定
        してみてください。
4. マッピングしたいサイトのIDとドメイ
        ンを登録する
• サイトIDは、サイト一覧の
  左はじに書いてある番号
  を確認してください。
• マッピングするドメインの
  DNS設定は予め完了して
  おいた方が楽です。
• 「Primary」のチェックを外
  して、現在のドメイン名も
  登録しておくと、「全くアク
  セスできない」という状況
  を回避できます
結論
結局「マルチサイト」ってどうなの?
• マルチサイトが良いと思われるケース
 – 複数サイト運用管理の稼働を減らしたい場合
 – 手軽にいくつもサイトを増やしたい場合
 – テーマフレームワーク等、使いまわししたい素材等が
   多い場合
• 個別インストールが良いと思われるケース
 – 独自機能が盛りだくさん
 – 負荷を集中させたくない場合(スペックにもよる)
 – WordPress本体やプラグインによる不具合を他サイト
   には絶対波及させたくない場合
ありがとうございました
• 加藤芳威
 – 所属: 株式会社デジコム
 – email: kato@djcom.jp
 – email: jcuriouser@gmail.com
 – Twitter: @yorozu
 – 個人サイト: http://curious-everything.com/
 – Flickr: http://www.flickr.com/photos/yorozu2009

マルチサイトの構築