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後台,點選:工具 > 網路設置,選擇 子域名,網路標題和網路管理員信箱任意輸入。
然後端機安裝。
稍等片刻後,介面出現兩個程式碼區塊,提示分別加入wp-config.php和.htaccesss檔案。
這裡我們用的是nginx,所以不需要管 .htaccess 部分。
開啟 wp-config.php文件,還是在註解:「/* 好了!請不要再繼續編輯。請儲存本文件。使用愉快!*/」之前,加上以下幾行:
/* multisite settings */ define( 'wp_allow_multisite', true );
登出wordpress後台,再登入。
開啟面板左上角 我的網站 > 網路管理 > 網站。
點選 新增的 按鈕,開啟新增網站表單,依序新增 blog、news、shop三個子網域。
添加完成後,選取所有站點,編輯news.jb51.com 和shop.jb51.com 兩個子域名,站點標題分別為新聞和商城,
把網站位址(url)分別改成:news.com和shop.com。
這一步完成後,我們就可以造訪blog.jb51.com了,它已經是一個獨立的網站了,擁有獨立的資源了。
但要能造訪news.com和shop.com,還需繼續往下看。
5、設定網域對映
開啟面板左上角 我的網站 > 網路管理 > 外掛程式。
在這裡安裝 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 為如下圖:
然后保存。
这里的配置的功能是:重定向所有二级域名(如 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( '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; }
保存后再访问后台的 站点 > 所有站点,在站点列表中就会多一列id,下一步就会用到。
后台控制面板切换到 设置 > domains,加入两个域名:
site id:3(以自己实际为主)
domian:news.com
primary:√
以及:
site id:4(以自己实际为主)
domian:shop.com
primary:√
如果域名是有www的,一样的操作方式。
以上是Nginx環境下WordPress的多站點功能怎麼配置的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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

要關閉 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

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

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

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

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

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


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

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

SublimeText3 Linux新版
SublimeText3 Linux最新版

Atom編輯器mac版下載
最受歡迎的的開源編輯器

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

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