搜尋
首頁運維NginxNginx環境下WordPress的多站點功能怎麼配置

wordpress的多站點功能允許安裝一個wordpress程式的情況下,實現多個站點(也就是一套程序,可以綁定多個網域或子網域)。

每個網站擁有獨立的主題、外掛、文章以及頁面。

這樣可以極大的減少了維護和更新多個wordpress安裝程式的麻煩,

並且,每個站點之間又能夠相互獨立,互不影響。

wordpress multisite有兩個方式:子目錄和子域名,這裡我們主要介紹子域名方式。

也就是說,在主域名的基礎上,我們會創建一個子域名,例如:http://shop.jb51.com。

同時,我們可以將這個子網域映射到一個一級網域如:http://shop.com,

#對訪客來說,存取的就是獨立的一級網域。

1、準備

wordpress介紹其多站點功能頁面:站點網絡管理頁面

接著,我們準備幾個域名,如下:

站點一:www.jb51.com(主域名),這是安裝wordpress時用的域名
站點二:blog.jb51.com,二級域名
站點三:news.com,映射的二級域名news.jb51.com
站點四:shop.com,映射的二級域名shop.jb51.com
注意:wordpress安裝後請勿擅自在後台修改域名,即使是把有www改成無www ,或者反過來,都有可能引起redirected you too many times. 錯誤

然後,登入網域名稱服務商的解析頁面,把以上網域的a記錄全部設定為wordpress安裝的伺服器ip。

也可以在本機電腦測試,可以直接修改hosts文件,加入下面1行:

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

內容為:

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為每個網域產生獨立的存取日誌,

如:news. com-access.log 和shop.com-access.log。

但是error日誌不能用$host變量,所以所有的錯誤都會記錄在一個檔案裡面。

再重啟nginx伺服器:

$ nginx -s reload

3、安裝wordpress

依照wordpress正常安裝步驟安裝wordpress。

4、啟用多站點功能

用文字編輯器開啟wp-config.php 文件,在註解:「/* 好了!請不要再繼續編輯。

儲存後登入wordpress後台,點選:工具 > 網路設置,選擇 子域名,網路標題和網路管理員信箱任意輸入。

然後端機安裝。

Nginx環境下WordPress的多站點功能怎麼配置稍等片刻後,介面出現兩個程式碼區塊,提示分別加入wp-config.php和.htaccesss檔案。

這裡我們用的是nginx,所以不需要管 .htaccess 部分。

開啟 wp-config.php文件,還是在註解:「/* 好了!請不要再繼續編輯。請儲存本文件。使用愉快!*/」之前,加上以下幾行:

/* multisite settings */
define( 'wp_allow_multisite', true );

登出wordpress後台,再登入。

開啟面板左上角 我的網站 > 網路管理 > 網站。

Nginx環境下WordPress的多站點功能怎麼配置 點選 新增的 按鈕,開啟新增網站表單,依序新增 blog、news、shop三個子網域。

Nginx環境下WordPress的多站點功能怎麼配置添加完成後,選取所有站點,編輯news.jb51.com 和shop.jb51.com 兩個子域名,站點標題分​​別為新聞和商城,

把網站位址(url)分別改成:news.com和shop.com。

這一步完成後,我們就可以造訪blog.jb51.com了,它已經是一個獨立的網站了,擁有獨立的資源了。

但要能造訪news.com和shop.com,還需繼續往下看。

5、設定網域對映


開啟面板左上角 我的網站 > 網路管理 > 外掛程式。

Nginx環境下WordPress的多站點功能怎麼配置在這裡安裝 wordpress mu domain mapping 插件,直接搜尋或下載安裝都可以,然後啟用。

接著複製外掛目錄(目錄wp-content/plugins/wordpress-mu-domain-mapping)下的 sunrise.php 檔案到 wp-content 目錄。

開啟 wp-config.php文件,還是在註解:「/* 好了!請不要再繼續編輯。請儲存本文件。使用愉快!*/」之前,加上如下一行:

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.

儲存,然後返回瀏覽器,在背景中開啟面板左上角我的網站> 網路管理> 設定。

再選擇domain mapping,修改 domain options 為如下圖:

Nginx環境下WordPress的多站點功能怎麼配置

然后保存。

这里的配置的功能是:重定向所有二级域名(如 news.jb51.com )到各自的外部域名(如 news.com),包括管理页面(/wp-admin)。

接下来,我们要映射一级域名到各个站点id。

默认在后台不显示站点id,所以我们用一个最简单的方法让后台直接显示站点id。

这个方法就是用wordpress的 must-use plugin。

在 wp-content 目录下创建一个 mu-plugins 目录,再在新建的目录下创建一个名为 wpms_blogid.php 的文件,

这个php文件的内容为:

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

function do_add_columns( $column_name, $blog_id ) {
if ( &#39;blog_id&#39; === $column_name )
echo $blog_id;
return $column_name;
}

function do_get_id( $columns ) {
$columns[&#39;blog_id&#39;] = &#39;id&#39;;
return $columns;
}

保存后再访问后台的 站点 > 所有站点,在站点列表中就会多一列id,下一步就会用到。

后台控制面板切换到 设置 > domains,加入两个域名:

site id:3(以自己实际为主)
domian:news.com
primary:√

以及:

site id:4(以自己实际为主)
domian:shop.com
primary:√

如果域名是有www的,一样的操作方式。

以上是Nginx環境下WordPress的多站點功能怎麼配置的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:亿速云。如有侵權,請聯絡admin@php.cn刪除
nginx怎麼啟動nginx怎麼啟動Apr 14, 2025 pm 01:06 PM

問題:如何啟動 Nginx?答案:安裝 Nginx啟動 Nginx驗證 Nginx 是否已啟動探索其他啟動選項自動啟動 Nginx

怎麼查看nginx是否啟動怎麼查看nginx是否啟動Apr 14, 2025 pm 01:03 PM

確認 Nginx 是否啟動的方法:1. 使用命令行:systemctl status nginx(Linux/Unix)、netstat -ano | findstr 80(Windows);2. 檢查端口 80 是否開放;3. 查看系統日誌中 Nginx 啟動消息;4. 使用第三方工具,如 Nagios、Zabbix、Icinga。

nginx怎麼關閉nginx怎麼關閉Apr 14, 2025 pm 01:00 PM

要關閉 Nginx 服務,請按以下步驟操作:確定安裝類型:Red Hat/CentOS(systemctl status nginx)或 Debian/Ubuntu(service nginx status)停止服務:Red Hat/CentOS(systemctl stop nginx)或 Debian/Ubuntu(service nginx stop)禁用自動啟動(可選):Red Hat/CentOS(systemctl disable nginx)或 Debian/Ubuntu(syst

nginx在windows中怎麼配置nginx在windows中怎麼配置Apr 14, 2025 pm 12:57 PM

如何在 Windows 中配置 Nginx?安裝 Nginx 並創建虛擬主機配置。修改主配置文件並包含虛擬主機配置。啟動或重新加載 Nginx。測試配置並查看網站。選擇性啟用 SSL 並配置 SSL 證書。選擇性設置防火牆允許 80 和 443 端口流量。

nginx403錯誤怎麼解決nginx403錯誤怎麼解決Apr 14, 2025 pm 12:54 PM

服務器無權訪問所請求的資源,導致 nginx 403 錯誤。解決方法包括:檢查文件權限。檢查 .htaccess 配置。檢查 nginx 配置。配置 SELinux 權限。檢查防火牆規則。排除其他原因,如瀏覽器問題、服務器故障或其他可能的錯誤。

linux怎麼啟動nginxlinux怎麼啟動nginxApr 14, 2025 pm 12:51 PM

在 Linux 中啟動 Nginx 的步驟:檢查 Nginx 是否已安裝。使用 systemctl start nginx 啟動 Nginx 服務。使用 systemctl enable nginx 啟用在系統啟動時自動啟動 Nginx。使用 systemctl status nginx 驗證啟動是否成功。在 Web 瀏覽器中訪問 http://localhost 查看默認歡迎頁面。

linux怎麼查看nginx是否啟動linux怎麼查看nginx是否啟動Apr 14, 2025 pm 12:48 PM

在 Linux 中,使用以下命令檢查 Nginx 是否已啟動:systemctl status nginx根據命令輸出進行判斷:如果顯示 "Active: active (running)",則 Nginx 已啟動。如果顯示 "Active: inactive (dead)",則 Nginx 已停止。

nginx304錯誤怎麼解決nginx304錯誤怎麼解決Apr 14, 2025 pm 12:45 PM

問題的答案:304 Not Modified 錯誤表示瀏覽器已緩存客戶端請求的最新資源版本。解決方案:1. 清除瀏覽器緩存;2. 禁用瀏覽器緩存;3. 配置 Nginx 允許客戶端緩存;4. 檢查文件權限;5. 檢查文件哈希;6. 禁用 CDN 或反向代理緩存;7. 重啟 Nginx。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)