WordPress的多站點(diǎn)功能允許安裝一個(gè)WordPress程序的情況下,實(shí)現(xiàn)多個(gè)站點(diǎn)(也就是一套程序,可以綁定多個(gè)域名或子域名)。
每個(gè)站點(diǎn)擁有獨(dú)立的主題、插件、文章以及頁面。
這樣可以極大的減少了維護(hù)和更新多個(gè)WordPress安裝程序的麻煩,
并且,每個(gè)站點(diǎn)之間又能夠相互獨(dú)立,互不影響。
WordPress multisite有兩個(gè)方式:子目錄和子域名,這里我們主要介紹子域名方式。
也就是說,在主域名的基礎(chǔ)上,我們會(huì)創(chuàng)建一個(gè)子域名,例如:http://shop.jb51.com。
同時(shí),我們可以映射這個(gè)子域名到一個(gè)一級域名如:http://shop.com,
對于訪問者來說,訪問的就是獨(dú)立的一級域名。
1、準(zhǔn)備
WordPress介紹其多站點(diǎn)功能頁面:站點(diǎn)網(wǎng)絡(luò)管理頁面
接著,我們準(zhǔn)備幾個(gè)域名,如下:
站點(diǎn)一:www.jb51.com(主域名),這是安裝WordPress時(shí)用的域名
站點(diǎn)二:blog.jb51.com,二級域名
站點(diǎn)三:news.com,映射的二級域名 news.jb51.com
站點(diǎn)四:shop.com,映射的二級域名 shop.jb51.com
注意:WordPress安裝后請勿擅自在后臺(tái)修改域名,即使是把有www改成無www,或者反過來,都有可能引起 redirected you too many times. 錯(cuò)誤
然后,登錄域名服務(wù)商的解析頁面,把以上域名的A記錄全部設(shè)置為WordPress安裝的服務(wù)器IP。
也可以在本地電腦測試,可以直接修改hosts文件,加入下面1行:
127.0.0.1 www.jb51.com blog.jb51.com news.com shop.com
2、Nginx配置
在Nginx配置目錄下創(chuàng)建新建一個(gè)配置文件,如下:
$ sudo vi /etc/nginx/conf.d/jb51.conf
內(nèi)容為:
server {
listen 80;
server_name www.jb51.com blog.jb51.com news.com shop.com;
root /usr/share/nginx/wordpress;
index index.php;
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 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
access_log /var/log/nginx/$host-access.log;
error_log /var/log/nginx/wpms-error.log;
}
這里我們使用$host變量可以讓Nginx為每個(gè)域名生成獨(dú)立的訪問日志,
如:news.com-access.log 和 shop.com-access.log。
但是error日志不能用$host變量,所以所有的錯(cuò)誤會(huì)記錄在一個(gè)文件里面。
再重啟Nginx服務(wù)器:
3、安裝WordPress
按照WordPress正常安裝步驟安裝WordPress。
4、啟用多站點(diǎn)功能
用文本編輯器打開 wp-config.php 文件,在注釋:“/* 好了!請不要再繼續(xù)編輯。請保存本文件。使用愉快! */”之前加上如下一行:
/* Multisite settings */
define( 'WP_ALLOW_MULTISITE', true );
接下來我們還會(huì)編輯這個(gè)文件幾次。
保存后登錄WordPress后臺(tái),點(diǎn)擊:工具 > 網(wǎng)絡(luò)設(shè)置,選擇 子域名,網(wǎng)絡(luò)標(biāo)題和網(wǎng)絡(luò)管理員郵箱任意輸入。
然后端機(jī)安裝。
稍等片刻后,界面出現(xiàn)兩個(gè)代碼塊,提示分別加入wp-config.php和.htaccesss文件。
這里我們用的是Nginx,所以不需要管 .htaccess 部分。
打開wp-config.php文件,還是在注釋:“/* 好了!請不要再繼續(xù)編輯。請保存本文件。使用愉快! */”之前,加上如下幾行:
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', 'www.jb51.com');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
Log out of the WordPress admin panel, and log in again.
登出WordPress后臺(tái),再登入。
打開面板左上角 我的站點(diǎn) > 網(wǎng)絡(luò)管理 > 站點(diǎn)。
點(diǎn)擊 添加新的 按鈕,打開添加新站點(diǎn)表單,依次添加 blog、news、shop三個(gè)子域名。
添加完成后,選 所有站點(diǎn) ,編輯 news.jb51.com 和 shop.jb51.com 兩個(gè)子域名,站點(diǎn)標(biāo)題分別為新聞和商城,
把 站點(diǎn)地址(URL)分別改成:news.com和 shop.com。
這一步完成后,我們就可以訪問blog.jb51.com了,它已經(jīng)是一個(gè)獨(dú)立的站點(diǎn)了,擁有獨(dú)立的資源了。
但是要能訪問news.com和shop.com,還需繼續(xù)往下看。
5、設(shè)置域名映射
打開面板左上角 我的站點(diǎn) > 網(wǎng)絡(luò)管理 > 插件。
在這里安裝 WordPress MU Domain Mapping 插件,直接搜索或者下載安裝都可以,然后啟用。
接著復(fù)制插件目錄(目錄wp-content/plugins/wordpress-mu-domain-mapping)下的 sunrise.php 文件到 wp-content 目錄。
打開wp-config.php文件,還是在注釋:“/* 好了!請不要再繼續(xù)編輯。請保存本文件。使用愉快! */”之前,加上如下一行:
保存,然后返回瀏覽器,在后臺(tái)中打開面板左上角 我的站點(diǎn) > 網(wǎng)絡(luò)管理 > 設(shè)置。
再選擇Domain Mapping,修改 Domain Options 為如下圖:
然后保存。
這里的配置的功能是:重定向所有二級域名(如 news.jb51.com )到各自的外部域名(如 news.com),包括管理頁面(/wp-admin)。
接下來,我們要映射一級域名到各個(gè)站點(diǎn)ID。
默認(rèn)在后臺(tái)不顯示站點(diǎn)ID,所以我們用一個(gè)最簡單的方法讓后臺(tái)直接顯示站點(diǎn)ID。
這個(gè)方法就是用WordPress的 Must-use plugin。
在 wp-content 目錄下創(chuàng)建一個(gè) mu-plugins 目錄,再在新建的目錄下創(chuàng)建一個(gè)名為 wpms_blogid.php 的文件,
這個(gè)PHP文件的內(nèi)容為:
<?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;
}
保存后再訪問后臺(tái)的 站點(diǎn) > 所有站點(diǎn),在站點(diǎn)列表中就會(huì)多一列ID,下一步就會(huì)用到。
后臺(tái)控制面板切換到 設(shè)置 > Domains,加入兩個(gè)域名:
Site ID:3(以自己實(shí)際為主)
Domian:news.com
Primary:√
以及:
Site ID:4(以自己實(shí)際為主)
Domian:shop.com
Primary:√
如果域名是有www的,一樣的操作方式。
6、結(jié)果
以上步驟完成之后,基本就OK了。
主站點(diǎn)域名還是不變,還是www.jb51.com。
用 news.com 就可以訪問新聞?wù)军c(diǎn),
用 shop.com 就可以訪問商城站點(diǎn),
博客還是可以用二級域名 blog.jb51.com 訪問。
同時(shí),這幾個(gè)站點(diǎn)的后臺(tái)也有獨(dú)立的地址:
http://www.jb51.com/wp-admin/
http://blog.jb51.com/wp-admin/
http://news.com/wp-admin/
http://shop.com/wp-admin/
以后再安裝主題和插件不能在每個(gè)站點(diǎn)中安裝了,
都統(tǒng)一在網(wǎng)絡(luò)管理(面板左上角 我的站點(diǎn) > 網(wǎng)絡(luò)管理 )中進(jìn)行配置
以上就是Nginx環(huán)境下WordPress的多站點(diǎn)功能配置詳細(xì)方法,希望對大家有所幫助