wordpressマルチユーザ/マルチサイト/マルチドメイン名モードをオンにする

3755 ワード

1.マルチユーザネットワークを開く


ウェブサイトのルートディレクトリの下のwp-config.php追加:
define('WP_ALLOW_MULTISITE', true);

 
サイトのバックグラウンドを更新して、ツール>ネットワークを構成して、自分の必要に応じて“サブドメイン名”あるいは“サブディレクトリ”モードを選択して、ウェブサイトの情報を設定して、それから“インストール”をクリックして、新しくインストールしたWordPressだけあって、しかもドメイン名を縛って、この時やっと“サブドメイン名”モードを選択することができます.「サブドメイン名」を選択し、インストール後、次のコードをWebサイトのルートディレクトリの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);

サブディレクトリが選択されている場合は、以下を追加します.
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', '    ');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

2.擬似静的規則の追加
サーバがAache環境を使用している場合は、次のコードを使用してWebサイトのルートディレクトリの下に置き換えます.htaccessのすべてのコード.
サブドメイン名モードのルールコード:
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
 
# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
 
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*.php)$ $1 [L]
RewriteRule . index.php [L]

サブディレクトリ・モードのルール・コード:
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).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*.php)$ $2 [L]
RewriteRule . index.php [L]

Nginx環境の場合は、ドメイン名プロファイルserver領域の最後の}に次のルールを追加します.サブドメイン名とサブディレクトリモードは共通です.
rewrite ^/([_0-9a-zA-Z-]+/)?wp-admin$ /$1wp-admin/ permanent;
if (-f $request_filename){
	set $rule_2 1;
}
if (-d $request_filename){
	set $rule_2 1;
}
if ($rule_2 = "1"){
#ignored: “-” thing used or unknown variable in regex/rew
}
rewrite ^/([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) /$2 last;
rewrite ^/([_0-9a-zA-Z-]+/)?(.*.php)$ /$2 last;
rewrite /. /index.php last;

Nginxを再起動してください.
3.COOKIEの設定
この手順は重要です.設定しないと、後でサイトのバックグラウンドにログインすると、「エラー:Cookiesがブロックされているか、ブラウザがサポートされていません.WordPressを使用するには、Cookiesを有効にする必要があります」というメッセージが表示されます.ウェブサイトのルートディレクトリの下のwp-config.php追加:
define( 'COOKIE_DOMAIN', '' );

4.マルチドメイン名モード
先ほど追加したサブドメイン名をポイント編集し、中の「サイトアドレス(URL)」を指定した独立ドメイン名に変更して保存します.nginx環境を使用する場合は、ドメイン名プロファイルのserver_nameセクションに使用する他の独立したドメイン名を追加し、nginxを再起動すればいいです.マルチドメイン名を自動的にマッチングする場合は、ドメイン名プロファイルのserver_nameセクションを次のように変更します.
server_name  ~^(www\.)?(.+)$;

これにより、管理者が手動でドメイン名を追加することなく、任意のユーザーが自分のドメイン名を設定するだけで、そのサーバを解析することができます.
5.トラブルシューティング(1).インストールトピックまたはプラグインが表示されている場合:インストールに失敗しました:ファイルをコピーできません.ディレクトリ権限またはユーザー・グループを変更しようとします.ディレクトリ権限を変更します.LNMPを例にとります.
chmod 777 /home/wwwroot/     -R

ユーザー・グループの変更:
chown -R www:www /home/wwwroot/    /

または参照:要求された操作を実行するには、WordPressがWebサーバにアクセスする権限が必要です.
(2).バックグラウンドにトピックが表示されない場合、または1つのトピックのみが表示される場合など、参考:LNMPはscandir関数を開き、wordpressがトピックディレクトリLNMPをスキャンできない場合を解決するWordPressバックグラウンドトピック管理は1つのトピックのみを表示する解決方法を解決WordPress新規ページを表示する場合はページテンプレートオプションを表示しない
もちろん、これらの問題はwordpressがマルチユーザーモードを開くことと直接関連がなく、各サーバー業者のシステム環境が異なり、PHPバージョンとデフォルト構成が異なり、問題が発生した場合は、勝手に検索してください.