は!?簡単すぎて俺ビビる。1つのWordPressで複数サイト管理※XSERVERのTipsあり

シェアしてもらえたりすると元気出ます。

head

どうも。数日前、WordPressを使い始めたばかりのケーラボです。

WordPress使ってますか?このサイトもそうですが、WordPressには1ソースで複数のサイトを管理する機能があります。それがマルチサイト機能です。

何を今更遅いよ君。なんなの?バカなの?って思った方はごめんなさいここから先は意味ないっす。ごめんなさいごめんなさい。

※この設定は途中で変更ができません。構成をよく考えてから実行しましょう。

マルチサイト機能って?

サーバが一つ、WordPressのソース一つ設置すれば、設定により複数のサイトの運営が可能になります。

list

この画面では3つのサイトを管理してる

上の画像のように、管理ページに「参加サイト」なるものができて、サイトの追加やサイトごとに分けられた管理がかんたんに利用できるようになります!

デメリットは?

ワンソースになるので、たくさん記事を書いていくとデータベース一つで管理することになり、データが肥大化し、DBアクセスに時間がかかる場合があるみたいですね。相当たくさんでしょうけども。SNSの様に流行ると爆発的にデータが増えていくわけではないけども、x(かける)サイト数文ですからね。

対策は?

対処としては、テーブルにインデックスを貼ったりでしょうか。もともとその辺の最適化はされてそうだけども。

あとは、もうそもそも論です。利用しない。1サイト1ソースで管理ですね。まあわかりやすくはあります。

別にまとめて管理する必要ね~や、WordPressすぐインストール設置できるし!うっせーよ!ってかたは、これ以降は意味ないですごめんなさいごめんなさい

やりたかったこと

example.comで、サーバーにWordPressをインストールできたぞ!わーい。

ブログの種類を分けたいな・・

one.example.comとtwo.example.comでブログ運営していきたい・・

でも、ソースを2つも設置したくない!

マルチサイト機能発見!設定してみる

複数のブログをマルチサイトに移行する – wpdocs

http://wpdocs.osdn.jp/%E8%A4%87%E6%95%B0%E3%81%AE%E3%83%96%E3%83%AD%E3%82%B0%E3%82%92%E3%83%9E%E3%83%AB%E3%83%81%E3%82%B5%E3%82%A4%E3%83%88%E3%81%AB%E7%A7%BB%E8%A1%8C%E3%81%99%E3%82%8B

条件

・バージョン 3.0以降

・public_htmlなどのルートレベルの公開ディレクトリにWordPressが設置されていること

うまく動かなかったり。修正するとこが増えます。多分。

私の構成

WordPress4.7

サーバーはXServerを使っています。

マルチサイト設定には種類がある。
  1. サブドメイン型
    • one.example.com , two.example.com, .. で管理
  2. サブディレクトリ型
    • example.com/one , example.com/two .. で管理
  3. マルチドメイン型
    •  other-domain-one.com  , other-domain-two.com .. で管理

今回やってみたのは1のサブドメイン型。

手順

・何はさておきバックアップ

・wp-config.phpに以下を追加してリロード

define(‘WP_ALLOW_MULTISITE’, true);

・設定画面が出現するので選ぶ

「ツール」→「ネットワークの設定」が出来上がってるので、選択して「サブドメイン」を選択。

※「ネットワークタイトル」は管理で使うだけなのでブログ上には表示されません

・コードを追加してねと出るので言われたとおり追加。(親切でビビる)

wp-config.phpファイルには追加

.htaccessファイルは内容を置き換え

※もう一度、 .htaccessは置き換えです。(「置き換える形で追加してください」と書いてあってややこしい)

・一旦管理画面ログアウトしてログイン。

・上部ナビゲーションバーからサイトを追加する

「参加サイト」→「サイトネットワーク管理」→「サイト」で新規追加可能に!!

site add

ちょっと上部切れちゃった

でマルチサイト化完了。やたー!

と、思ったら・・・

ここで問題発生

私はxserverにソースを置いてます。このxserverさん、評判は良いんですが、サブドメインを作ると、ドキュメントルート、つまりone.example.comのアクセス先が、/example.com/public_html/one/というディレクトリに設定され、しかも、変更できない!

できるのかもしれないが、自分には分からず!無念!

ワンソース管理なので、どのサブドメインからアクセスしてきても、WordPressが置いてあるディレクトリにアクセスしてもらう必要があります。

どうしよ・・こうしよう。

oneへのアクセスしてきたら、wordpressのソースがある、/example.com/public_html/を見に行く様にサーバーさんに設定しておこう。

手順

(※サブドメインの追加を済ませておいてください)

コマンドラインを使うので、黒い背景の文字だけの世界へ。苦手な人は、この設定だけだから頑張ってください!

いやいや、めんどーだし笑そんなん無理っすってひとはここでお別れです(´・ω・`)ごめんなさいごめんなさい

1xserverのinfoパネルから、sshの設定を済ませる。

設定はすませんここにおまかせしちゃいます
https://www.xserver.ne.jp/manual/man_server_ssh.php
2sshでサーバーにログイン。

設定はすませんここにおまかせしちゃいます
https://www.xserver.ne.jp/manual/man_server_ssh_connect_tera.php

3 以下のコマンドを実行

// シンボリックリンクを貼れないので、勝手にできちゃうoneディレクトリを削除、 
$ rm -dr ~/example.com/public_html/one

// example.comの公開ルートディレクトリへ移動 
$ cd ~/example.com/public_html

// oneディレクトリ(架空)へのアクセスは以下のディレクトリにアクセスね!のコマンド
// シンボリックリンクを貼る 最後にスラッシュ / 入れちゃだめだよ!
$ ln -s ~/example.com/public_html ./one

※ 構成に違いがある場合は適宜読み替えてください

以上の設定で、無事表示されるようになりました。わーい。

まとめ

  • wp-config.phpに指示通り設定書くだけでマルチサイトモード発動。え?こんだけ?で、ビビる。
  • 設定さえしてしまえば管理が捗る。
  • 公開ディレクトリ変更できないXserverの様なサーバーは、シンボリックリンクを貼る。

設定かんたんじゃねーじゃねーか!っていう意見もあるでしょう汗

まあでも、その後の管理がある程度楽になることは確かかだなと思いました。

うろ覚えの部分もあるので、なにか間違い等ございましたらお知らせいただけるとうれしいです。

ここまで読んでいただきありがとうございました。



コメント

  1. ちょのの。 より:

    おかげさまで助かりました。
    いろいろ苦労したあげく、いろんな資料を見てダメだったあげく、このページの情報に救われました。

    無事にサイトネットワークが表示できました!
    感謝いたします。