WordPress のマルチサイト機能を使用すると、1 つの WordPress プログラムをインストールして複数のサイト (つまり、複数のドメイン名またはサブドメインにバインドできる一連のプログラム) を作成できます。 各サイトには独自のテーマ、プラグイン、記事、ページがあります。 これにより、複数の WordPress インストールの保守と更新の手間が大幅に軽減されます。 さらに、各サイトは互いに独立しており、互いに影響を与えません。 WordPress マルチサイトの使い方にはサブディレクトリとサブドメインの 2 つの方法があります。ここでは主にサブドメイン方式を紹介します。 つまり、メインのドメイン名に基づいて、サブドメインを作成します(例:http://shop.jb51.com)。 同時に、このサブドメインを http://shop.com などの第 1 レベル ドメインにマップすることもできます。 訪問者がアクセスするのは、独立したファーストレベル ドメイン名です。 1. 準備 WordPress がマルチサイト機能ページを導入: サイトネットワーク管理ページ 次に、以下のようにいくつかのドメイン名を準備します。 サイト 1: www.jb51.com (プライマリ ドメイン名)、WordPress のインストール時に使用するドメイン名 サイト 2: blog.jb51.com、セカンド レベル ドメイン名 サイト 3: news.com、マッピングされたセカンド レベル ドメイン名 news.jb51.com 次に、ドメイン名サービスプロバイダーの解決ページにログインし、上記のドメイン名のAレコードをWordPressがインストールされているサーバーのIPに設定します。 また、hosts ファイルを直接変更し、次の行を追加することで、ローカル コンピューターでテストすることもできます。 127.0.0.1 www.jb51.com blog.jb51.com news.com shop.com 2. Nginx の設定 次のように、Nginx 設定ディレクトリに新しい設定ファイルを作成します。 $ sudo vi /etc/nginx/conf.d/jb51.conf 内容は次のとおりです。 サーバー{ 聞く 80; server_name www.jb51.com blog.jb51.com news.com shop.com; ルート /usr/share/nginx/wordpress; インデックスindex.php; 位置 / { try_files $uri $uri/ /index.php?$args; } 場所 ~ /favicon.ico { access_log オフ; log_not_found オフ; } 場所 ~ \.php$ { try_files $uri /index.php; fastcgi_params を含めます。 127.0.0.1:9000; をデフォルトとして設定します。 fastcgi_index インデックス.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } アクセスログ /var/log/nginx/$host-access.log; error_log /var/log/nginx/wpms-error.log; } ここでは、$host 変数を使用して、Nginx がドメイン名ごとに個別のアクセス ログを生成できるようにします。 たとえば、news.com-access.log および shop.com-access.log などです。 ただし、エラー ログでは $host 変数を使用できないため、すべてのエラーはファイルに記録されます。 Nginx サーバーを再起動します。 $ nginx -s リロード 3. WordPressをインストールする 通常の WordPress インストール手順に従って WordPress をインストールします。 4. マルチサイト機能を有効にする テキスト エディターで wp-config.php ファイルを開き、コメントの前に次の行を追加します: "/* これで完了です。これ以上編集しないでください。このファイルを保存してください。楽しんでください。*/": /* マルチサイト設定 */ 定義( 'WP_ALLOW_MULTISITE' , true ); このファイルをさらに数回編集します。 保存後、WordPress バックエンドにログインし、「ツール」>「ネットワーク設定」をクリックし、サブドメイン、ネットワーク タイトル、ネットワーク管理者のメール アドレスを選択します。 次にターミナルをインストールします。 しばらくすると、インターフェイスに 2 つのコード ブロックが表示され、それぞれ wp-config.php ファイルと .htaccesss ファイルを追加するように求められます。 ここでは Nginx を使用しているため、.htaccess の部分については心配する必要はありません。 wp-config.php ファイルを開き、コメントの前に次の行を追加します: "/* OK! これ以上編集しないでください。このファイルを保存してください。楽しんでください! */": 'MULTISITE' を定義します。 定義('SUBDOMAIN_INSTALL'、true); 定義('DOMAIN_CURRENT_SITE'、'www.jb51.com'); 定義('PATH_CURRENT_SITE'、'/'); 定義('SITE_ID_CURRENT_SITE'、1); 定義('BLOG_ID_CURRENT_SITE', 1); WordPress 管理パネルからログアウトし、再度ログインします。 WordPress からログアウトして再度ログインします。 パネルの左上隅にある [マイサイト] > [ネットワーク管理] > [サイト] を開きます。 [新規追加] ボタンをクリックして [新しいサイトの追加] フォームを開き、ブログ、ニュース、ショップの 3 つのサブドメインを順番に追加します。 追加後、すべてのサイトを選択し、2 つのサブドメイン news.jb51.com と shop.jb51.com を編集します。サイト タイトルはそれぞれニュースとショッピング モールになります。 サイト アドレス (URL) をそれぞれ news.com と shop.com に変更します。 この手順を完了すると、blog.jb51.com にアクセスできます。これはすでに独立したリソースを持つ独立したサイトです。 ただし、news.com と shop.com にアクセスするには、読み続ける必要があります。 5.ドメイン名マッピングを設定する パネルの左上隅にある [マイサイト] > [ネットワーク管理] > [プラグイン] を開きます。 ここで WordPress MU ドメイン マッピング プラグインをインストールします。直接検索するか、ダウンロードしてインストールしてから有効にすることができます。 次に、プラグイン ディレクトリ (ディレクトリ wp-content/plugins/wordpress-mu-domain-mapping) にある sunrise.php ファイルを wp-content ディレクトリにコピーします。 wp-config.php ファイルを開き、コメントの前に次の行を追加します: "/* OK! これ以上編集しないでください。このファイルを保存してください。楽しんでください! */": 定義('SUNRISE'、'on'); 保存してからブラウザに戻り、バックグラウンドのパネルの左上隅にある [マイサイト] > [ネットワーク管理] > [設定] を開きます。 次に、ドメイン マッピングを選択し、以下のようにドメイン オプションを変更します。 それから保存します。 ここでの設定の機能は、管理ページ (/wp-admin) を含むすべての第 2 レベル ドメイン名 (news.jb51.com など) をそれぞれの外部ドメイン名 (news.com など) にリダイレクトすることです。 次に、トップレベルドメイン名をさまざまなサイト ID にマッピングする必要があります。 デフォルトでは、サイト ID はバックグラウンドに表示されないため、最も簡単な方法として、サイト ID をバックグラウンドで直接表示します。 この方法は、WordPressのMust-useプラグインを使用する方法です。 wp-content ディレクトリに mu-plugins ディレクトリを作成し、新しく作成したディレクトリに wpms_blogid.php という名前のファイルを作成します。 この PHP ファイルの内容は次のとおりです。 <?php フィルターを追加します( 'wpmu_blogs_columns', 'do_get_id' ); アクションを追加します('manage_sites_custom_column', 'do_add_columns', 10, 2); add_action( 'manage_blogs_custom_column', 'do_add_columns', 10, 2 ); 関数 do_add_columns( $column_name, $blog_id ) { if ( 'blog_id' === $column_name ) $blog_id をエコーします。 $column_name を返します。 } 関数do_get_id($columns){ $columns['blog_id'] = 'ID'; $columns を返します。 } 保存後、バックエンドで「サイト」>「すべてのサイト」にアクセスすると、サイト リストに追加の ID 列が表示されます。これは次の手順で使用します。 バックエンド コントロール パネルで [設定] > [ドメイン] に切り替えて、次の 2 つのドメイン名を追加します。 サイトID: 3 (実際の状況に基づく) 同様に: サイトID: 4 (実際の状況に基づく) ドメイン名に www が含まれる場合も、同じ操作が使用されます。 6. 結果 上記の手順を完了すれば、基本的には問題ありません。 メインサイトのドメイン名は変更されず、引き続き www.jb51.com のままです。 ニュースサイトにアクセスするには news.com を使用します。 shop.com を使用してモールサイトにアクセスできます。 このブログには、第 2 レベル ドメイン名 blog.jb51.com を使用して引き続きアクセスできます。 同時に、これらのサイトのバックエンドにも独立したアドレスがあります。 http://www.jb51.com/wp-admin/ すべてのサイトにテーマやプラグインをインストールできなくなりました。 すべてはネットワーク管理(パネルの左上隅にある[マイサイト] > [ネットワーク管理])で構成されます。 以上がNginx環境下でWordPressのマルチサイト機能を設定する詳細な方法です。皆様のお役に立てれば幸いです。 以下もご興味があるかもしれません:
|
<<: Vue2.0の双方向データバインディング原則を手動で実装する
>>: Linux centos7 環境での MySQL インストール チュートリアル
目次1. イベントの流れ1. コンセプト2. DOMイベントフロー2. イベントの委任1. イベント...
不明なドメイン名 www.baidu.com を Ping するホストのIPアドレスを変更する右クリ...
他の人のために解決した問題を記録します。問題の説明MySQLのバージョンは5.7、オペレーティングシ...
現象Dockerコンテナを起動する docker run –name [コンテナ名] [コンテナID...
著者は1年以上マイクロフロントエンドプロジェクトに取り組んできました。チームは10個のマイクロアプリ...
nGrinderとは何ですか? nGrinder は、スクリプトの作成、テストの実行、監視、結果レポ...
1. PAM設定ファイルを編集する sudo vim /etc/pam.d/ログイン2行目に以下を...
序文デッドロックの本質はリソースの競合です。バッチ挿入の順序が一貫していないと、デッドロックに陥りや...
この記事の例では、検証コードを実装するためのjsの具体的なコードを参考までに共有しています。具体的な...
大規模なシステムに取り組んだことがある人なら誰でも、ログの役割を過小評価してはならないことを知ってい...
この記事の例では、記事の折りたたみと展開の機能を実現するためのjQueryの具体的なコードを参考まで...
導入以前、ある問題に気づきました。学習ビデオを視聴しているとき、動きが遅すぎる、先生が黒板に書くのに...
最近、要素テーブルを使用すると、並べ替えの問題によく遭遇します。単純な並べ替えであれば、要素の公式が...
1. インデックスの原則インデックスは、列内の特定の値を持つ行をすばやく見つけるために使用されます。...
目次コンポーネント通信の概要コンテンツ3つの方法まとめコンポーネントコミュニケーション - 父から息...