WordPressのマルチサイト設定方法【nginx・サブドメイン】

WordPressをnginx環境でサブドメインのマルチサイト化した時のメモです。

環境
  • WordPress 5.3.2
  • Nginx 1.12.2
  • PHP 7.2

参考
Nginx + WordPress マルチサイト機能を有効にする | りんか IT備忘禄

DNSでワイルドカード設定

AWSであればRoute53で設定します。

*.hoge.com

wp-config.phpを編集

/** マルチサイト機能 */
define('WP_ALLOW_MULTISITE', true);
/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */

wordpress管理画面の設定

管理画面 > ツール > サイトネットワークの設置

今回はサブドメインにしたいので
サブドメインにチェックをして「インストール」

wp-config.phpを編集

wp-config.phpに以下を追加

/** マルチサイト機能 */
define('WP_ALLOW_MULTISITE', true);
// ここから追記
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', 'lala.selegee.com');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */

nginxの設定ファイルを編集

apacheだと.htaccessですがnginxなのでnginxの設定ファイルを編集

server {
    server_name  *.hoge.com;
    server_name  hoge.com;

    root         /var/www/hoge/html;
    listen       80;
    listen       [::]:80;
    client_max_body_size 100M;
    access_log  /var/log/nginx/hoge.access.log;
    error_log   /var/log/nginx/hoge.error.log;
    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;

  try_files $uri $uri/ /index.php?$args;

  # リライト
  rewrite /wp-admin$ $scheme://$host$uri/ permanent;

  # Pass uploaded files to wp-includes/ms-files.php
  rewrite /files/$ /index.php last;

  # Rewrite multisite '.../wp-.*' and '.../*.php'.
  if (!-e $request_filename) {
    rewrite ^/[_0-9a-zA-Z-]+(/wp-.*) $1 last;
    rewrite ^/[_0-9a-zA-Z-]+.*(/wp-admin/.*\.php)$ $1 last;
    rewrite ^/[_0-9a-zA-Z-]+(/.*\.php)$ $1 last;
  }
}

nginxを再起動

service nginx restart

管理画面からサイトを追加

管理画面の左上に「参加サイト」が追加されています!

サイトを追加できます!

以上です。お疲れ様でした。