先日、現在WordPressで作成中の自分のサイトをマルチサイトにしてみました。
自分のサイトは「メインコンテンツ」と「スタッフブログ」みたいな構成にしたいと思い
1つのダッシュボードで複数のサイトが管理できるという点に惹かれ
マルチサイトに手を出したわけです。
その時の手順とつまづいた点などを書いていきたいと思います。
このブログはWordPress Advent Calendar 2015に参加したかった人達の Advent Calendar 2015に参加しています。
マルチサイト化するWordPressの構成
今回はGMOのVPSサービスConoHaで立ち上げたサーバにWordPressを入れてマルチサイト化しました。
なお、各バージョンは下記のとおりです。
OS:CentOS release 6.7 (Final)
Apache:2.2.15
WordPress:4.3
PHP:5.3.3
MySQL:5.1.73
上記の構成で立ち上げたWordPressをマルチサイト化していきます。
(今回の記事はサブディレクトリ方式でマルチサイトを作成します。)
※記事中は何も投稿のないWordPressをマルチサイト化することを前提にしています。
もし、現在稼働しているWordPressをマルチサイト化する場合は、
万が一を考えバックアップなどの対策をしてください。
wp-config.phpの編集
wp-config.phpを編集してdefine('WP_ALLOW_MULTISITE', true);
をコメント「/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */」の
上あたりに挿入してください。
挿入後、WordPressダッシュボードを開くと、
左サイドメニュー[ツール]配下に[ネットワークの設置]メニューを選択できるようになります。
[ネットワークの設置]の設定しよう
前段の[ネットワークの設置]を選択して、マルチサイト化を進めていきましょう。
選択すると下記のような「WordPressサイトのネットワークの作成」画面が表示されます。
この画面に書かれてる手順に従って、「wp-config.php」と「.htaccess」を編集していきます。
wp-config.phpの編集2
上記、大段落「wp-config.phpの編集」で編集したwp-config.phpを再度編集します。
define('WP_ALLOW_MULTISITE', true);
の下に
「WordPressサイトのネットワークの作成」画面の1にある6行を追加し保存してください。
.htaccessの編集(作成)
WordPressのファイル群があるディレクトリの「.htaccessファイル」を編集します。
もしなかった場合は新規作成してください。
WordPressの再ログイン
「wp-config.php」ファイルと「.htaccess」ファイルの編集が終わったら
WordPressのダッシュボードからログアウトして再度ログインします。
そうすると、下記の図のようにダッシュボード画面の左上がマルチサイトに対応した形になっています。
サイトの追加
さて、ここからメインサイトとは別のサブサイトを追加していきます。
今までの画面では「マルチサイトテスト」というサイトがメインになり
そこに「マルチ2」というサイトをサブディレクトリ「malti2」に追加します。
上記画面のように必要事項を入力して「サイトを追加」ボタンを押します。
その後、「参加サイト」を見ると中にメインの「マルチサイトテスト」と
今、追加したサブの「マルチ2」が表示されます。
いやーこれでマルチサイト化ができました。めでたしめでたし……
というわけにはいかなかったりするのです
実際にサブ「マルチ2」を閲覧しようすると、力いっぱい404エラーが返ってきます。また、「マルチ2」のダッシュボードを見ようとしても、フルスイングな勢いで404エラーが返ってくるのです。
原因はApacheの設定
なぜ、404エラーになるのか。
それは、Apacheの初期設定で「.htaccess」を無効化していることが原因です。
では、設定を変更していきましょう。
Apacheの設定ファイルである「httpd.conf」を編集し「.htaccess」を有効化します。
なお、ここではWordPressはサーバ内の/var/www/html
動いているものとします。各環境で異なると思いますが、それぞれ読み替えて参考にしてください。
httpd.confの編集
通常、httpd.confファイルは /etc/httpd/confディレクトリ
配下に格納されています。
このファイルのWordPressが動いている<Directory "/var/www/html">
内の設定を変え「.htaccessを有効化」します。しかし、「.htaccess」はいろいろできてしまうファイルなので、最低限の許可でマルチサイト化を実現したいと思います。
具体的には
■変更点 ------------------------------------ ・ <Directory "/var/www/html"> ・ ・ AllowOverride None ・ ・ </Directory> ・ ------------------------------------ ↓ AllowOverride「None」を「Fileinfo」に変更します。 ------------------------------------ ・ <Directory "/var/www/html"> ・ ・ AllowOverride Fileinfo ・ ・ </Directory> ・ ------------------------------------
上記の設定が完了したら、下記コマンドでhttpdを再起動します。
#service httpd restart
再度「マルチ2」にアクセスしてみる
上記設定と再起動が完了したら、再度「マルチ2」にアクセスしてみます。
今度は閲覧することができました。
ダッシュボードも問題なく表示されます。
無事にマルチサイト化完了
いろいろ設定することがあり面倒でしたが、マルチサイト化が完了しました。
ただ、マルチサイト化には複数のサイトをまとめて管理ができるなどのメリットもありますが、対応していないプラグインなどデメリットもあります。制作するサイトに合わせて使い分けることが重要かと思います。
また、シングルサイトの際はテーマのstyle.cssなどを編集する際に
左メニューの[外観]-[テーマの編集]で編集ができましたが
マルチサイト化した後は
ダッシュボード上部の[参加サイト]-[サイトネットワーク管理者]-[テーマ]を選択し
各テーマ名の下にある[編集]から編集することができます。
このように、シングルサイト時とインターフェースが変わっている部分もあります、ご注意ください。
適所に的確につかって、便利なサイト運営を!