Ubuntu 14.04でNginxを使用してWordPressマルチサイトをセットアップする方法

前書き

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

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

前提条件

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

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

  • サイト1:

    ドメイン:(プライマリドメイン)+

    これは、WordPressのインストール時に作成されるサイトです。

  • サイト2:

    外部ドメイン:

    サブドメイン: shoppingsite.example.com

  • サイト3:

    外部ドメイン:

    サブドメイン: companysite.example.com

最初のドメインは、WordPressがインストールされるプライマリドメイン名です。 必ずhttps://www.digitalocean.com/community/tutorials/how-to-set-up-a-host-name-with-digitalocean[3つのドメインすべてにDNSを設定]のIPアドレスを指すようにしてくださいWordPressをホストするドロップレット。

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

このセクションでは、*プライマリドメイン*のDNSワイルドカードレコードを追加して、個々のhttps://www.digitalocean.com/community/tutorials/an-introduction-toを必要とせずに、いつでもサイトを追加できるようにします-dns-terminology-components-and-concepts [A records]。 (または、サブドメインごとに新しいAレコードを追加できます。)

_ 注意:*これは(このチュートリアルの) _primary domain_に対してのみ行う必要があります。 _

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

image:https://assets.digitalocean.com/articles/wordpress_multisite/add_wildcard_a_record.png [DNSコントロールパネル-ワイルドカードレコード]

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

今見るべきもの:

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

ステップ2-LEMPスタックのインストールと構成

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

リポジトリを更新し、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サーバーのインストール中に、ルートデータベースユーザーのパスワードを入力するよう求められます。 強力なパスワードを入力し、空白のままにしないでください。 パスワードを2回入力します。

image:https://assets.digitalocean.com/articles/wordpress_multisite/2.png [MySQLルートパスワード]

WordPressファイルを保持するNginxのドキュメントルートを作成します。 このチュートリアル全体で使用します。

mkdir

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

rm /etc/nginx/sites-enabled/default
  • sites-available *ディレクトリ内に新しい仮想ホストファイルを作成します。 このファイルには任意の名前を付けることができます。 この例では、それを呼び出します。

nano /etc/nginx/sites-available/

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

server {
   listen [::]:80 ipv6only=off;
   server_name ;

   root ;
   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;
}

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

listen [::]:80 default_server ipv6only=off;
server_name ;

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

このファイルを保存し、* 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 ;

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

CREATE USER ''@'localhost' IDENTIFIED BY '';
GRANT ALL PRIVILEGES ON .* TO ''@'localhost';
  • password *という単語を強力なパスワードに置き換えます。 特権をフラッシュし、MySQLコマンドラインを終了します。

FLUSH PRIVILEGES;
exit

手順4で必要になるため、これらの詳細を書き留めます。

_ _ データベース名:

+ データベースユーザー:

+ データベースパスワード: _ _

MySQLユーザーの詳細については、https://www.digitalocean.com/community/tutorials/how-to-create-a-new-user-and-grant-permissions-in-mysql [この記事]を参照してください。

ステップ4-WordPressのダウンロードとインストール

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

WordPressをダウンロードして抽出します。

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

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

mv wordpress/*

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

chown -R www-data:www-data

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

http:///

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

image:https://assets.digitalocean.com/articles/wordpress_multisite/3.png [WordPressデータベースの詳細]

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

image:https://assets.digitalocean.com/articles/wordpress_multisite/4.png [WordPressウェルカム画面]

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

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

http://codex.wordpress.org/Tools_Network_Screenを有効にするには、* wp-config.php *ファイルでhttp://php.net/manual/en/language.constants.php[PHP定数]を定義する必要があります[ネットワーク設定]ページ。

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

nano wp-config.php

コメント `+ / *の前に次のコードを追加します。これで編集は終了です! 幸せなブログ。 * / + `:

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

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

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

image:https://assets.digitalocean.com/articles/wordpress_multisite/5.png [WordPressネットワーク設定]

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

define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', '');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
  • wp-config.php *ファイルを編集します。

nano wp-config.php

コメント `* / *の前にこれらの行を追加します。これで編集は終了です! 幸せなブログ。 * / + `で保存します。 Nginxにはこのファイルがないため、.htaccessに表示されるコードは無視できます。

WordPress管理パネルからログアウトし、再度ログインします。 左上の管理者http://codex.wordpress.org/Toolbar[toolbar]から、*個人用サイト>ネットワーク管理者>サイト*に移動します。

image:https://assets.digitalocean.com/articles/wordpress_multisite/6.png [WordPressツールバー]

  • Add New ボタンをクリックして、 Add New Site *フォームを開きます。 次のスクリーンショットは、この例のショッピングサイトに入力された詳細を示しています。 入力した*サイトアドレス*は、このサイトのサブドメインを形成します。

image:https://assets.digitalocean.com/articles/wordpress_multisite/7.png [新しいWordPressサイトの作成]

[サイトの追加]をクリックすると、作成されたサイトに http://shoppingsite.examplewp.com*からアクセスできます。

これらの手順を繰り返して、2番目のサイト(この例ではcompanysite.examplewp.com)を作成します。

今見るべきもの:

次の3つのWordPressサイト:

  • examplewp.com

  • shoppingsite.examplewp.com

  • companysite.examplewp.com

それぞれに独自のコンテンツ、テーマ、およびアクティブなプラグインのセットがあります。

ステップ6-ドメインマッピングのセットアップ

このセクションでは、WordPress MU Domain Mappingプラグインをダウンロードして有効にすることで、WordPressサイトごとに個別のドメイン名を使用できるようにします。 このプラグインを使用すると、WordPressマルチサイトのユーザーは自分のブログ/サイトを別のドメインにマッピングできます。

SSHを介してDropletにログインし、http://wordpress.org/plugins/wordpress-mu-domain-mapping/ [WordPress MU Domain Mapping]プラグインをダウンロードします。 最初に `+ unzip +`コマンドをインストールしてから、プラグインを抽出します。

wget http://downloads.wordpress.org/plugin/wordpress-mu-domain-mapping.latest-stable.zip
apt-get install unzip
unzip wordpress-mu-domain-mapping.latest-stable.zip

抽出したファイルをWordPressプラグインディレクトリに移動します。

mv wordpress-mu-domain-mapping wp-content/plugins/

プラグインのディレクトリから* sunrise.php ファイルを wp-content *ディレクトリにコピーします。

cp wp-content/plugins/wordpress-mu-domain-mapping/sunrise.php wp-content/
  • wp-config.php *ファイルを編集して、コメント「+ / *」の前に次の行を追加します。 幸せなブログ。 * / + `。

ファイル: + wp-config.php

define('SUNRISE', 'on');

このファイルを保存して、Webブラウザーに戻ります。 WordPressツールバーから*個人用サイト>ネットワーク管理>プラグイン*に移動します。

image:https://assets.digitalocean.com/articles/wordpress_multisite/8.png [プラグイン]

  • WordPress MU Domain Mapping プラグインの下にある Network Activate *リンクをクリックします。 [設定]> [ドメインマッピング]に移動し、次のように[ドメインオプション]を変更します。

  • *リモートログイン*のチェックを外します

  • *永続的なリダイレクト*を確認してください

  • *管理ページをサイトの元のドメインにリダイレクト*のチェックを外します

image:https://assets.digitalocean.com/articles/wordpress_multisite/9.png [ドメインマッピングオプション]

完了したら[保存]をクリックします。 これらの設定は、サブドメイン(companysite.examplewp.comなど)へのすべてのリクエストを、管理ページ(/ wp-admin)を含むそれぞれの外部ドメイン(companysite.orgなど)にリダイレクトします。

次のステップでは、サイトIDに基づいてドメイン名を各サイトにマッピングします。 サイトのIDを見つける方法はたくさんありますが、管理を容易にするために、* Sites *ページに追加のID列を表示する簡単なWordPress Must-use pluginを作成します。

SSHを介してDropletにログインし、* mu-plugins *ディレクトリを作成します。

mkdir wp-content/mu-plugins

このディレクトリ内にPHPファイルを作成し、次のコードを貼り付けます。

nano wp-content/mu-plugins/wpms_blogid.php

このコンテンツを正確にコピーできます:

<?php
add_filter( 'wpmu_blogs_columns', 'do_get_id' );
add_action( 'manage_sites_custom_column', 'do_add_columns', 10, 2 );
add_action( 'manage_blogs_custom_column', 'do_add_columns', 10, 2 );

function do_add_columns( $column_name, $blog_id ) {
   if ( 'blog_id' === $column_name )
       echo $blog_id;
   return $column_name;
}

function do_get_id( $columns ) {
   $columns['blog_id'] = 'ID';
   return $columns;
}

[サイト]> [すべてのサイト]セクションに追加のID列が表示されます。

image:https://assets.digitalocean.com/articles/wordpress_multisite/10.png [ID]

各サイトのID値を書き留めて、[設定]> [ドメイン]ページに移動します。 サイトIDを入力してから、サイトの外部ドメインを入力します。 たとえば、このページのcompanysiteのIDは3であるため、* Site ID は3で、ドメインは companysite.org *である必要があります。

image:https://assets.digitalocean.com/articles/wordpress_multisite/11.png [サイトIDをドメインにマッピング]

サイトのURLを* http://www.companysite.org [www.companysite.org] *として設定する場合は、「www」プレフィックスを追加できます。 他のドメインに対してこれらの手順を繰り返します。 ページの下部にある[保存]をクリックします。

今見るべきもの:

各サイトには、サブドメインではなく独自のドメイン名があります。つまり、ブラウザにhttp://companysite.orgと入力すると、* My Online Company *サイトが開きます。 これを確認するには、http://shoppingsite.comおよびhttp://companysite.orgにアクセスしてください。 ページの左上隅にサイトタイトルの変更が表示されます。

各サイトは、独自のWordPress管理パネルを使用して個別に管理できるようになりました。

http://examplewp.com/wp-admin/
http://shoppingsite.com/wp-admin/
http://companysite.org/wp-admin/

コア/プラグイン/テーマの更新とプラグイン/テーマのインストールは、プライマリドメインのネットワーク管理ページから実行する必要があります。

http://examplewp.com/wp-admin/network/
Related