かもメモ

自分の落ちた落とし穴に何度も落ちる人のメモ帳

WordPress マルチサイト設置のメモ

WordPressでマルチサイトを設置した時のメモ

サイト構成
次のような構成で、WordPressの管理画面の設定からサイトが/webrootで表示されるように変更しました。

/webroot
  |- .htaccess
  |- index.php
  |- /wordpress
         |- wp-config.php

マルチサイトの設定

1. wp-config.php にマルチサイトを使用可能にするコードを追加

/wordpress/wp-config.php にマルチサイトを可能にする設定を/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */コメントの上に追加

define ('WP_ALLOW_MULTISITE', true);

2. プラグインを全て無効にする

プラグインが有効になっているとネットワークのインストールが出来ないので、プラグインを有効にしている場合は一度全て無効にする必要があります。

3. ネットワークのインストール

WordPress管理画面をリロードすると設定 > ツールに「ネットワーク」が追加されているので「ネットワーク」を選択。

サブサイトの運用を「サブドメイン型」にするか「サブディレクトリ型」にするかを決めます。 レンタルサーバーの場合「サブドメイン型」にするとサブサイトを作る度にドメインの設定を行わなければならない場合もあるので「サブディレクトリ型」にした方がメンドーは無いかもしれません。
既に運用としているWordPressサイトをマルチサイトにする時は固定ページなどでディレクトリの割当がされているせいか「サブドメイン型」しか選択できなくなるようです。

サイトのネットワーク名・マルチサイト全ての管理者(特権管理者権限)アカウントになるサイトネットワーク管理者のメールアドレスを確認します。 ネットワークの設定を1度行うとDBが変更されてしまうので修正するにはDBを初期化してWordPressを再インストールする必要があります。
設定に問題がなければ「インストールボタン」をクリックしてマルチサイトが使用できるネットワークをインストールします。

4. サイトネットワークの設置

ネットワークのインストールが完了するとwp-config.phpとサイトのトップ(index.phpのある階層)にある.htpaccessを変更する指示が出るので、これを各ファイルにコピペしていきます。
f:id:kikiki-kiki:20180201055509p:plain

/wordpress/wp-config.php 1.で追加したコードの下に表示されたコードをコピペします

define ('WP_ALLOW_MULTISITE', true);
define('MULTISITE', true);  // マルチサイトにする: true
define('SUBDOMAIN_INSTALL', false); // サブドメイン型: true サブディレクトリ型: false
define('DOMAIN_CURRENT_SITE', 'example.com'); // サイト全体のトップドメイン
define('PATH_CURRENT_SITE', '/'); // メインサイトのパス
define('SITE_ID_CURRENT_SITE', 1); // メインサイトのID
define('BLOG_ID_CURRENT_SITE', 1); // メインブログのID (将来的に複数のブログが管理できるようになるっぽい?)

wp-config.phpの変更が完了したらパーミッション400に変更しておきます。

次に、サイトトップに当たる階層にある.htpaccessに表示されたコードをコピペします。

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) wordpress/$2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ wordpress/$2 [L]
RewriteRule . index.php [L]

この時 BEGIN WordPress で始まるWordPressが出力していた設定があるとリダイレクトループが発生してサイトが表示されなくなります。
注意書きにある通り「他のWordPress ルールを置き換えてください」とあるので、これを削除してしまうかコメントアウトします。(コメントアウトの方が万が一の時に戻しやすいかもです)

# BEGIN WordPress
# <IfModule mod_rewrite.c>
# RewriteEngine On
# RewriteBase /
# RewriteRule ^index\.php$ - [L]
# RewriteCond %{REQUEST_FILENAME} !-f
# RewriteCond %{REQUEST_FILENAME} !-d
# RewriteRule . /index.php [L]
# </IfModule>
# END WordPress

5. 管理画面に再ログイン

wp-config.php.htpaccessの変更が完了したら、管理画面をリロードするとログアウトしているので、3. で決めた特権管理者権限のアカウントでログインできればマルチサイトの設定は完了です。
ログインボタンを押した時にログイン画面にリダイレクトされてしまう場合は、一度Cookieを削除するとログインがログインが出来るようになるようです。
 

wp-config.phpに追加した define('MULTISITE', true); の値をfalseにするとDBやマルチサイトのデータを残したまま、マルチサイトでないメインのサイトだけの状態に戻すことが出来るようです。
但し、テーマ内にget_blog_details()の様なマルチサイトの時しか使えない関数があるとエラーになるので注意が必要です。
FYI: https://codex.wordpress.org/Function_Reference#Multisite_functions


[参考]

WordPress 子テーマ「親テーマが見つかりません。」になるとき

WordPressで子テーマを作成してインストールしようとしたら
修正が必要なテーマ: 親テーマが見つかりません。「THEME NAME」の親テーマをインストールしてください。
というエラーが表示される時

親テーマの指定はディレクトリ名でなければならない

テーマの構成

/themes
   |- /my-theme
   |- /my-sub-theme

親テーマ(my-theme)の設定

/* /my-theme/style.css
  Theme Name:  MY THEME
  ...
*/

この様な構成の時、子テーマ(my-sub-theme)での親テーマをTemplate:に指定します

/* /my-sub-theme/style.css
  Theme Name:  MY SUB THEME
   Template:   my-theme
*/

親テーマ名のMY THEMEではなく、親テーマのディレクトリ名のmy-themeで指定しないと親テーマとして認識されない。
テスト環境が大文字小文字を同じものとして扱ってたりして、本番サーバーが大文字小文字を別だと認識してたりするとハマったりする。


SHINY DAYS(TVアニメ「ゆるキャン△」OPテーマ)

SHINY DAYS(TVアニメ「ゆるキャン△」OPテーマ)

Coincheck 5億2300万NEM(620億円相当)流出事件のメモ

個人的な趣味でタイムライン作ってみるのに調べたのでlogとして
f:id:kikiki-kiki:20180129065836p:plain

日時 内容 参照
2018 1/26
02:57~08:26
CoincheckのウォレットからNEMが数回に渡り不正送金される Coincheckサービスにおける一部機能の停止について | コインチェック株式会社
11:25頃 Coincheck 異常を検知 http://corporate.coincheck.com/2018/01/26/29.html
12:07頃 Coincheck NEMの入金一時停止について告知 Coincheckサービスにおける一部機能の停止について | コインチェック株式会社
【重要】NEMを始めとした取扱通貨について | Coincheck(コインチェック)
12:38頃 Coincheck NEMの売買一時停止について告知 Coincheckサービスにおける一部機能の停止について | コインチェック株式会社
【重要】NEMを始めとした取扱通貨について | Coincheck(コインチェック)
12:52頃 Coincheck NEMの出金一時停止について告知 Coincheckサービスにおける一部機能の停止について | コインチェック株式会社
【重要】NEMを始めとした取扱通貨について | Coincheck(コインチェック)
15:35 Yahooニュース ビットコイン取引所「コインチェック」で620億円以上が不正に引き出される被害が発生 ビットコイン取引所「コインチェック」で620億円以上が不正に引き出される被害が発生(追記あり)(山本一郎) - 個人 - Yahoo!ニュース
16:33頃 Coincheck JPYを含め、全ての取扱通貨の出金一時停止について告知 Coincheckサービスにおける一部機能の停止について | コインチェック株式会社
【重要】NEMを始めとした取扱通貨について | Coincheck(コインチェック)
17:23頃 Coincheck BTC以外(オルトコイン)の売買の一時停止について告知 Coincheckサービスにおける一部機能の停止について | コインチェック株式会社
【重要】NEMを始めとした取扱通貨について | Coincheck(コインチェック)
17:31 Rin MIZUNASHI(@minarin_)さんハッカーのアカウント追跡開始をTwitterに投稿 コインチェック犯人追跡するみなりんさんのテレグラム中継 | ビットコインバーゲン
18:50頃 Coincheck クレジットカード、ペイジー、コンビニ入金一時停止について告知 Coincheckサービスにおける一部機能の停止について | コインチェック株式会社
【重要】NEMを始めとした取扱通貨について | Coincheck(コインチェック)
20:27 NEM財団 CEO Lon Wong(@2017Lon)氏
CC社のセキュリティの問題なのでハードフォークを行わない旨の記事をTwitterに投稿
https://twitter.com/2017Lon/status/956851031249272832
Coincheck Hack: "The Biggest Theft in the History of the World" | CryptoNews
23:30頃 Coincheck 記者会見 コインチェック社、記者会見全文3 仮想通貨NEMの不正流出疑惑を受けて - ログミー
2018 1/27
3:57
NEM財団 Alex(@Inside_NEM)さん
ハッキングされたNEMを自動追跡するシステムを開発したことをTwitterで発表
https://twitter.com/Inside_NEM/status/956964401399156736
NEMがコインチェックでハッキングを受けた通貨を追跡アカウントにタグ付け
17:00頃 Coincheck Coincheck payment 日本円出金、及び新規支払いの受付停止を発表 Coincheckサービスにおける一部機能の停止について | コインチェック株式会社
Coincheckサービスにおける一部機能の停止について | コインチェック株式会社
2018 1/28
00:46
Coincheck 不正送金されたNEMの460億円相当の補償を発表
NEM保有者に88.549円×保有数計算した日本円でコインチェックウォレットに返金
不正に送金された仮想通貨NEMの保有者に対する補償方針について | コインチェック株式会社

[出典]

ハッカーと画家 コンピュータ時代の創造者たち

ハッカーと画家 コンピュータ時代の創造者たち