【決定版】WordPressをマルチサイト化する時のつまずきポイント全て解決!!
2017/03/25
ここのところ、3日間 毎晩行き詰っていた「WordPressをマルチサイト化」がやっと解決できたので、つまずきポイントの解決策をどのサイト・ブログよりも詳しく説明します。
私も困ったときに、ググってみて同じ症状で行き詰っている方の解決策説明ブログなどをたくさん見つけて、解決策を見ましたが、不要な記載があったり、漏れが結構ありました。これでは、問題がより大きくなってしまいますね、、、
今、この投稿を見てくださっている読者の方も完全に解決できる一元化された情報をお待ちなのかと思います。
お任せください!私と同じような環境でしたら、これから説明する方法でマルチサイト化できますよ!!私と多少違う環境の方でも、かなり応用は効くのではないでしょうか。
ちなみに、わたしは下記のような環境でした。全く同じ環境ではない方でも参考にしていただけると思います。
私の環境
・WordPress 4.5.7 (STINGER7 テーマ)
・ドメイン・レンタルサーバー: ムームードメイン・ロリポップ(by GMOペパボ)
・すでにメインサイト公開済み
・新規にサブドメインサイトを設置するにあたってのマルチサイト化
目次
- 1:マルチサイトとは
- 2:マルチサイトっていいの?
- 3:マルチサイト化を有効にする -重要ポイント有り-
- 4:マルチサイト化しようとしたら陥る警告に対応する -重要ポイント有り-
- 5:ネットワークを作成する
- 6:全て行ってもうまくいかない場合の確認・対策ポイント -重要ポイント有り-
- 7:まとめ
1:マルチサイトとは
2つ以上のブログをひとつのWordPress管理画面で管理できるようにすることです。
各サイトごとに複数のWordPressをインストールして使うよりも管理しやすくなります。
しかし、マルチサイト化にはメリットとデメリットがあります。私は多少のデメリットよりも、一元管理という大メリットを優先してマルチサイト化しました。
マルチサイトのサブドメイン型とサブディレクトリ型
マルチサイト化を各サイトごとに独自ドメインを取得しない人にとっては、[サブドメイン型]と[サブディレクトリー型]の2種類から選択する事になります。
こちらの投稿をご覧いただいている方には、お分かりの事かと思いますが、簡単にまとめますと
サブドメイン型
メインサイト:http://www.info2info.net
↓一元管理したい追加サイト↓
http://xxx01.info2info.net
http://xxx02.info2info.net
.
.
.
.
サブディレクトリ型
メインサイト:http://info2info.net
↓一元管理したい追加サイト↓
http://www.info2info.net/xxx01/
http://www.info2info.net/xxx02/
.
.
.
.
と追加で新サイトを管理できます
わたしは、サブドメイン型のマルチサイト化を行いました。
マルチサイトっていいの?
下記のようなメリットがありますね。
・テーマ&プラグインを「メインサイト」「追加サイト」で一元管理できる
・プラグインの更新も一元管理できるので、1回更新すればOK
・「メインサイト」更新と「追加サイト」更新作業をwordpressの管理画面を比較的簡単に行き来して対応できる
代表的なデメリット
・各サイトごとに別々の「テーマ」を設定できない!?(後々できたとしても、難易度が高い!?)
3:マルチサイト化を有効にする -重要ポイント有り-
3-1:[wp-config.php]を更新する
これだけ需要があるのだから、WordPress側で標準機能として搭載してほしいものですが、、、最新バージョンのWordPressに更新したとしても、はじめからはマルチサイト機能は備わっていない状態です。
FTPソフトでWordPressをインストールしたディレクトリーから[wp-config.php]ファイルをローカル環境にダウンロードしましょう。
ファイルを開いて「/*編集が必要なのはここまでです」と記載されている箇所の上に以下の記述を追記します。
// マルチサイト
define ('WP_ALLOW_MULTISITE', true);
↓
非表示とする記載ですので、説明文は「/* マルチサイト */」と記載してもOKです。
文字コードを「UTF-8(UTF-8N)」に指定して保存しないとうまくいきません。
改行コードは、特になんでも大丈夫なはずです。私は「LF」にしています。
windowsPCに標準で備わっている「メモ帳」では文字コードを指定保存できませんので、私は
無料エディターソフトである「TeraPad」を使っています。
wp-config.phpをアップロード
ローカル環境で追記更新した[wp-config.php]を[FFFTP]などのFTPクライアントソフトでサーバーへ上書きアップロードします。
※ホスト側のファイルを上書き更新するために、更新前のホスト側の対象ファイルを「属性変更」する必要があります。対象のファイル・フォルダ等を右クリックして、「属性変更」→「777」もしくは、「705」に変更してから、FTPクライアントソフトで上書きアップロードします。
わたしは、「777」にしています。
3-2:新たに追加される[[ツール]の中の[ネットワーク設定]画面]で注意を確認する
WordPress管理画面の左メニュー[ツール]に[ネットワーク設定]というリンクが追加されているので、
クリックしましょう。
・管理画面に「警告:サイトネットワーク機能を有効化する前にプラグインを無効化してください。」という表示が下記のように表示される場合は、
↓
対策:
WordPress管理画面の「プラグイン → インストール済みプラグイン 」を選択・クリックして、有効化されているプラグインを全て「停止(無効化)」しましょう。
全ての作業が完了した後で、プラグインを有効化する必要があります。たぶん、みなさんももともと使っていないプラグインがあると思いますので、有効化(=使用している)プラグインをメモしておきましょう。私の場合は、スマホで写真を撮ってすぐに見直せるようにしています。
すると、下記のように[wp-config.php]を更に更新し、[.htaccess]も更新するような記載があります。
3-3:注意にそって[wp-config.php]を更に更新し、[.htaccess]も更新する
・[wp-config.php]の記述内容は、先ほど追記した箇所を①から②のように上書き更新します。
①
/* マルチサイト */
define('MULTISITE', true);
②
/* マルチサイト */
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', 'info2info.net');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
↑
『info2info.net』は、わたしのメインサイトのドメインですので、みなさんはWordPress管理画面に表示されている記載内容をそのままコピペしてくださいね。
※ちなみに、下記の案内は対応しなくてもマルチサイト化は行えます。私は対応していません。
ユニーク認証キーが wp-config.php ファイルに見つかりません。 インストールをさらに安全にするため、次を追加するとよいでしょう。
define( 'AUTH_SALT', '^ns(k@xy={.s+KO63%&wTG](3;2>?:4W><h4AqON3Z6}4<@4>|F]~a1av4I%O' );
define( 'SECURE_AUTH_SALT', '$XCI5b+z8hx>gP|]v+Kp)Z-{(VAtv0>]6Z4L2B} Z|c#9q9JDe 4$0?h+E H+@9' );
define( 'LOGGED_IN_SALT', 'Su1g,Dn#ZD{lF:XtR)Wxl!Wl7,~sEE?pT$k%(j&dsCG77:9dywE(VRsN!x-@KTFK' );
define( 'NONCE_SALT', 'xY.FEH}eGbA%~$efnnLds<--^4Sw_Z9_|_C:atZiD12@U[N][!&O^xF{.F8gqj!@' );
・「次の内容を /home/users/.../.../web/ にある .htaccess ファイルへ追加して、他の WordPress ルールを置き換えてください」という案内に沿って。
<<ポイント1>>
WordPressがインストールされているフォルダではなく、ルートフォルダ(たぶんみなさんの最上位のフォルダになるはずです)にある[.htaccess]ファイルを上書き保存しましょう。
わたしは、当初 「WordPress」がインストールされているフォルダの中にある[.htaccess]のみを
更新していたため、うまくマルチメディア化できませんでした。
そこで、わたしの環境では、結果として下記のように複数個所の[.htaccess]ファイルを全く同じ記載内容で更新している状態となっています。
・「ルートフォルダ」
・「メインサイト」のWordPressが保存されているフォルダ
・「サブドメインサイト」のWordPressが保存されているフォルダ
更新する際は、もともとの記載を完全削除して、WordPressの管理画面に記載されている下記の記載に変更しちゃってください。
変更後の記載
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) wp/$1 [L]
RewriteRule ^(.*\.php)$ wp/$1 [L]
RewriteRule . index.php [L]
※[.htaccess]ファイルの文字コードは、「UTF-8(UTF-8N)」にする必要はありません。
私は、文字コード「SHIFT-JIS」・改行コード「LF」というデフォルト状態で保存しています。
4:マルチサイト化しようとしたら陥る警告に対応する -重要ポイント有り-
[3:マルチサイト化を有効にする -重要ポイント有り-]の後、問題なく進めば、こちらの項目を無視して
5:ネットワークを作成するに進んでください。
私は、なんども3の作業をおこなっては、WordPress管理画面の左メニュー[ツール]に[ネットワーク設定]から表示される画面内で下記の警告・注意が表示されるという警告&注意の無限ループにおとしいれられてしまい、、、3日間も悩むという、、、スムーズに進められませんでした。
警告:既存のネットワークがあります、ネットワークのデータベースのテーブルを空にするか削除してください
↓
対策:
WordPressをインストールしているフォルダの中にある「wp-contents」フォルダ内に「blog.dir」を作る作業を忘れていた為の警告です。
これは知らないと絶対できない作業ですね。
深い理由は気にせず、「blog.dir」という文字列をコピペする形で新規フォルダを作りましょう。
新規のフォルダを手動で制作して、「属性変更」→「777」もしくは、「705」に変更してから、FTPクライアントソフトでアップロードしましょう。わたしは、「777」にしています。
注意: 既存の WordPress ネットワークを検出しました。
↓
対策:
この警告が出たらphpMyadminにログインしてデータベースの中の以下のテーブルを削除するとうまくいくというネットでいわれている情報に沿って、恐る恐るデータベースのテーブル削除を行いました。
<削除するテーブル一覧>
「(テーブルの接頭語)_blogs」
「_blogs_versions」
「***_registration_log」
「***_signups」
「***_site」
「***_sitemeta」
↓
私の環境は、ロリポップサーバーをレンタルしておりますので下記のように作業しました。
・ロリポップのユーザー専用ページにアクセスして
「WEBページ → データベース → 管理ページ – phpMyAdminを開く」の順にクリック!
これまで聞いたことも、存在すらしらなかった「phpMyAdmin へようこそ画面」が表示されます。
ユーザ名・パスワードを入力し、サーバーを選択してログインします。
↓
・画面上部メニュー「データベース」をクリック
・メイン画面もしくは、左メニューにある「対象のデータベース」をクリック
・「対象のテーブル」の削除ボタンをクリック。
→「本当に削除していいですか?」みたいな確認画面は表示されないので、テーブルの選択ミスをしないように注意しましょう!!
5:ネットワークを作成する
・ネットワークを作成する。
「ネットワーク設定」画面にで下記画面のように「サブドメイン形式」か「サブディレクトリ形式」かを選択する事になります。私の場合は、「サブドメイン形式」を選択しました。
そして、「インストール」ボタンをクリックする事で、ネットワークが作成されます。
・ネットワークに追加サイト(=サブドメインを使用したサイト)を追加する。
・管理画面上部に新たに表示されることになった「(参加サイト) → サイトネットワーク管理者 → ダッシュボード」をクリック
↓
・サブドメインサイト情報をネットワークに登録する。
管理者メールアドレスは、「メインサイト」の管理者メールアドレスと同じにしておくと、余計なユーザーが追加されなくて都合がいいと思います。私は、そのようにしています。
6:全て行ってもうまくいかない場合の確認・対策ポイント -重要ポイント有り-
ここまでくれば、マルチ化が無事完了しているかと思います。
WordPress管理画面でマルチ化が完了している状態は、下記のように管理画面上部の
「参加サイト に 「メインサイト」・「サブドメインをあてた追加サイト1」「サブドメインをあてた追加サイト2」」が表示され、選択したサイトの「ダッシュボード」をクリックすれば、移動できる
状態になります。
※ここで私に起きた問題、ネット上でも困ったまま回答がなくとまっている問題とその解決方法を紹介します。
・「サブドメインをあてた追加サイト1」のダッシュボードに移動すると「404エラーになる」場合
&
・「サブドメイン①」のダッシュボードに移動すると、「メインサイト」と「サブドメインサイト②」へ移動するための、「(参加サイト) → サイトネットワーク管理者」メニューが表示されない場合
↓
対策:
下記対策を全て確認・対応すれば直りますよ!
[.htaccess]ファイルと[wp-config.php]ファイルの更新漏れが考えられますので下記のようにします。
[.htaccess]ファイル更新箇所:
・ルートディレクトリ
↑
このケースがほとんどではないでしょうか。
・メインサイトのWordPressインストールフォルダ
・追加したサブドメインサイトのWordPressインストールフォルダ
[wp-config.php]ファイル更新箇所:
・メインサイトのWordPressインストールフォルダ
・追加したサブドメインサイトのWordPressインストールフォルダ
[blog.dir]フォルダの新規設置 :
・メインサイトのWordPressをインストールしているフォルダの中にある「wp-contents」フォルダ内
・追加したサブドメインサイトのWordPressをインストールしているフォルダの中にある「wp-contents」フォルダ内
まとめ
うまくいかない場合は、あきらめずにこちらのサイトで紹介している対応策を確認してください。
多数の他サイトで困っている方を見てきた事や、私自身も一番つまずいて、どうしてよいか分からなくなったポイントは下記のポイントです。
WordPressがインストールされているフォルダではなく、ルートフォルダ(たぶんみなさんの最上位のフォルダになるはずです)にある[.htaccess]ファイルを上書き保存しましょう。
私の場合は、ルートフォルダに加えて、各サイト毎にWordPressがインストールされているフォルダの[.htaccess]ファイルも上書きアップロードしています。
「サブドメイン型のマルチサイト化では、DNSサーバーの設定変更が必要」といったような情報がWEB上でよく見受けられますが、私の場合は不要でした。
そもそも「DNSサーバー」!?っていう方も安心してください。私と同じような環境でのマルチ化であれば、そのような作業は必要ないですよ。
そもそも、『追加するサブドメインをわりあてた新サイト』へのWordPressのインストールって
レンタルサーバー「ロリポップ」の『WordPress ワードプレス 簡単インストール』を使ってもいいのかな!?ってなりますよね。いいですよ。
私は、簡単インストール後に、上記1~5の工程を完了させることでマルチサイト化できましたよ。
長々と最後までお読みいただきありがとうございます。
WordPressのマルチサイト化は、発信する情報ごとに別の新規サイト(サブドメイン型・サブディレクトリ型)を立ち上げて運用する際には、管理が一元化できるという面でとっても大きな管理工数減のメリットがあります。
こちらの記事を読んでくださった方も、この後、マルチサイト化できて、快適な管理環境になることを祈っています!!