序章

WordPressのマルチサイト機能は、WordPressの1回のインストールから複数のWebサイトを作成する機能を提供します。 各サイトには、個別のテーマ、プラグインのセット、およびコンテンツのコレクション(投稿とページ)を含めることができます。 これにより、WordPressの複数のインストールを維持および更新するオーバーヘッドが削減され、相互にまったく関係のない複数のサイトをホストできます。

WordPressマルチサイトには、サブディレクトリまたはサブドメインの2つの種類があります。 このチュートリアルでは、サブドメインを使用するようにWordPressマルチサイトを設定します。 つまり、作成するサイトには、http://wp-site.yourdomain.comのようなサブドメインWebアドレスがあります。 これは、 http://wp-site.net のような外部ドメインにマッピングして、各サイトが外部から独立しているように見せることができます。

前提条件

このチュートリアルでは、ユーザーが次の知識を持っている必要があります。

次のドメイン名で3つのWordPressサイトを作成します。

最初のドメインは、WordPressがインストールされるプライマリドメイン名です。 WordPressをホストするドロップレットのIPアドレスを指すように3つのドメインすべてにDNSを設定してください。

ステップ1-DNSワイルドカードレコードを設定する

このセクションでは、プライマリドメインのDNSワイルドカードレコードを追加して、個々の Aレコードを必要とせずに、いつでもサイトを追加できるようにします。 (または、サブドメインごとに新しいAレコードを追加することもできます。)

注:これは、* プライマリドメイン(このチュートリアルの examplewp.com )に対してのみ実行する必要があります。

DigitalOceanコントロールパネルにログインし、[ネットワーク]セクションに移動します。 プライマリドメインを編集し、ドロップレットのIPアドレスを指すこのドメインのワイルドカードAレコードを作成します。 次のスクリーンショットに示すように、ホスト名入力ボックスにアスタリスク(*)を入力すると、ワイルドカードレコードが作成されます。

DNS Control Panel - wildcard record

ドメインのDNSを他の場所でホストしている場合は、代わりにワイルドカードレコードを設定する必要があります。

あなたが今見るべきもの:

random-sub-domain.examplewp.com に対するDNSクエリは、ドロップレットのIPアドレスを返す必要があります。

ステップ2-LEMPスタックをインストールして構成する

このセクションでは、Nginx、MySQL、およびPHPをインストールして構成します。 LEMPスタックのセットアップに関する詳細な記事があり、必要に応じて参照できます。 このセクションは、クイックセットアップとして機能します。 ドロップレットの作成時に[イメージの選択]セクションのアプリケーションタブの下にLEMPon Ubuntu14.04イメージもあります。

リポジトリを更新し、Nginx、MySQL、PHP5-FPMおよびその他の必要なPHPモジュールをインストールします。

apt-get update
apt-get install -y nginx mysql-server php5-fpm php5-mysql php5-curl php5-mcrypt php5-gd

MySQLサーバーをインストールすると、rootデータベースユーザーのパスワードを入力するように求められます。 強力なパスワードを入力してください。空白のままにしないでください。 パスワードを2回入力します。

MySQL root password

WordPressファイルを保持するNginxのドキュメントルートを作成します。 このチュートリアルでは、 / usr / share / nginx /wordpressを使用します。

mkdir /usr/share/nginx/wordpress

Nginxのデフォルトの仮想ホストを独自の仮想ホストに置き換えるため、sites-enabledディレクトリのシンボリックリンクを削除します。

rm /etc/nginx/sites-enabled/default

sites-availableディレクトリ内に新しい仮想ホストファイルを作成します。 このファイルには任意の名前を付けることができます。 この例では、wp-msと呼びます。

nano /etc/nginx/sites-available/wp-ms

このファイルを編集して、次の構成を配置します。 環境に応じて、赤で強調表示されているテキストを編集します。 server_name行に、3つ(またはそれ以上)のマルチサイトドメインすべてと、最初のドメインのワイルドカードサブドメインを追加する必要があります。

server {
    listen [::]:80 ipv6only=off;
    server_name examplewp.com *.examplewp.com shoppingsite.com companysite.org;

    root /usr/share/nginx/wordpress;
    index index.php index.html index.htm;

    location / {
	    try_files $uri $uri/ /index.php?$args ;
    }

    location ~ /favicon.ico {
        access_log off;
        log_not_found off;
    }

    location ~ \.php$ {
        try_files $uri /index.php;
		include fastcgi_params;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
	}

	access_log	/var/log/nginx/$host-access.log;
	error_log	/var/log/nginx/wpms-error.log;
}

このドロップレットがこのWordPressインストールのみをホストする場合、listenおよびserver_nameディレクティブを次のように変更できます。

listen [::]:80 default_server ipv6only=off;
server_name examplewp.com *.examplewp.com;

access_logディレクティブで$host変数を使用すると、examplewp.com-access.logshoppingsite.com-accessなどのドメインごとに個別のログファイルが作成されます。 .logerror_logディレクティブにこのような変数を使用することはできないため、すべてのエラーが1つのファイルに記録されます。

このファイルを保存し、sites-enabledディレクトリ内にこのファイルのシンボリックリンクを作成します。

ln -s /etc/nginx/sites-available/wp-ms /etc/nginx/sites-enabled/wp-ms

Nginx構成テストを実行し、OKが返された場合は再起動します。

service nginx configtest
service nginx restart

ステップ3-WordPress用のMySQLデータベースとユーザーを作成する

このセクションでは、WordPress用のMySQLデータベースと、このデータベースのみの権限を持つユーザーを作成します。

rootユーザーとしてMySQLコマンドラインにログインします。

mysql -u root -p

データベースを作成します。

CREATE DATABASE wordpress;

MySQLユーザーを作成し、このデータベースへのアクセス許可を付与します。

CREATE USER 'wordpress_user'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress_user'@'localhost';

passwordという単語を強力なパスワードに置き換えます。 特権をフラッシュし、MySQLコマンドラインを終了します。

FLUSH PRIVILEGES;
exit

ステップ4で必要になるため、これらの詳細を書き留めます。

データベース名: ワードプレス
データベースユーザー: wordpress_user
データベースパスワード: パスワード

MySQLユーザーの詳細については、この記事を参照してください。

ステップ4-WordPressをダウンロードしてインストールする

このセクションでは、最新バージョンのWordPressをダウンロードしてインストールします。 これは、最初のサイトexamplewp.com用です。

WordPressをダウンロードして解凍します。

wget http://wordpress.org/latest.tar.gz
tar -xf latest.tar.gz

抽出したファイルをドキュメントルートに移動します。

mv wordpress/* /usr/share/nginx/wordpress/

ユーザーwww-dataに所有権を割り当てます。 これは、メディアのアップロードと、コア/プラグイン/テーマの更新がWordPressで機能するために不可欠です。

chown -R www-data:www-data /usr/share/nginx/wordpress

ブラウザでプライマリドメインにアクセスして、WordPressのインストールを開始します。

http://examplewp.com/

必要に応じて、URLに「www」サフィックスを追加できます。 構成ファイルの作成ボタンをクリックしてから、 Let’s go!ボタンをクリックします。 データベースの詳細を入力し(ステップ3の情報を使用)、送信をクリックします。

WordPress database details

この時点で、WordPressはデータベースとの接続を確立して、入力された資格情報をテストします。 接続に成功すると、インストールの実行ボタンが表示されます。 クリックして。 必要な情報フォームに記入してサイトのタイトル、ユーザー名、パスワード、メールアドレスを設定し、WordPressのインストールをクリックします。 セキュリティのために、一般的でないユーザー名を選択することをお勧めします。

WordPress welcome screen

ステップ5-マルチサイトを有効にして、追加のサイトを作成する

このセクションでは、WordPressマルチサイトを有効にし、この記事の前提条件セクションに記載されている2つの追加サイトを作成します。

ネットワーク設定ページを有効にするには、PHP定数wp-config.phpファイルで定義する必要があります。

wp-config.phpファイルを編集します。

nano /usr/share/nginx/wordpress/wp-config.php

コメント/* That's all, stop editing! Happy blogging. */の前に次のコードを追加します。

/* Multisite settings */
define( 'WP_ALLOW_MULTISITE', true );

このチュートリアルでは、このファイルをさらに数回編集します。 作成した/* Multisite settings */セクションにすべての新しい行を自由に追加してください。

ファイルを保存します。 WordPress管理パネルにログインし、ツール>ネットワーク設定に移動します。 サブドメインオプションを選択し、ネットワークタイトルを必要に応じて変更してから、インストールをクリックします。

WordPress Network Setup

wp-config.phpファイルと.htaccessファイルに追加される2つのコードブロックが表示されます。 次のようなwp-config.phpコードをコピーします。

define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', 'examplewp.com');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

wp-config.phpファイルを編集します。

nano /usr/share/nginx/wordpress/wp-config.php

コメント/* That's all, stop editing! Happy blogging. */の前