Nginx环境下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 文件,在注释:“/* 好了!请不要再继续编辑。请保存本文件。使用愉快! */”之前加上如下一行:
/* multisite settings */ define( 'wp_allow_multisite', true );
接下来我们还会编辑这个文件几次。
保存后登录wordpress后台,点击:工具 > 网络设置,选择 子域名,网络标题和网络管理员邮箱任意输入。
然后端机安装。
稍等片刻后,界面出现两个代码块,提示分别加入wp-config.php和.htaccesss文件。
这里我们用的是nginx,所以不需要管 .htaccess 部分。
打开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.
登出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('sunrise', 'on');
保存,然后返回浏览器,在后台中打开面板左上角 我的站点 > 网络管理 > 设置。
再选择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中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

确认 Nginx 是否启动的方法:1. 使用命令行:systemctl status nginx(Linux/Unix)、netstat -ano | findstr 80(Windows);2. 检查端口 80 是否开放;3. 查看系统日志中 Nginx 启动消息;4. 使用第三方工具,如 Nagios、Zabbix、Icinga。

如何在 Windows 中配置 Nginx?安装 Nginx 并创建虚拟主机配置。修改主配置文件并包含虚拟主机配置。启动或重新加载 Nginx。测试配置并查看网站。选择性启用 SSL 并配置 SSL 证书。选择性设置防火墙允许 80 和 443 端口流量。

在 Linux 中,使用以下命令检查 Nginx 是否已启动:systemctl status nginx根据命令输出进行判断:如果显示 "Active: active (running)",则 Nginx 已启动。如果显示 "Active: inactive (dead)",则 Nginx 已停止。

在 Linux 中启动 Nginx 的步骤:检查 Nginx 是否已安装。使用 systemctl start nginx 启动 Nginx 服务。使用 systemctl enable nginx 启用在系统启动时自动启动 Nginx。使用 systemctl status nginx 验证启动是否成功。在 Web 浏览器中访问 http://localhost 查看默认欢迎页面。

启动 Nginx 服务器需要按照不同操作系统采取不同的步骤:Linux/Unix 系统:安装 Nginx 软件包(例如使用 apt-get 或 yum)。使用 systemctl 启动 Nginx 服务(例如 sudo systemctl start nginx)。Windows 系统:下载并安装 Windows 二进制文件。使用 nginx.exe 可执行文件启动 Nginx(例如 nginx.exe -c conf\nginx.conf)。无论使用哪种操作系统,您都可以通过访问服务器 IP

解决 Nginx 跨域问题有两种方法:修改跨域响应头:添加指令以允许跨域请求,指定允许的方法和头,以及设置缓存时间。使用 CORS 模块:启用模块并配置 CORS 规则,允许跨域请求、方法、头和设置缓存时间。

问题的答案:304 Not Modified 错误表示浏览器已缓存客户端请求的最新资源版本。解决方案:1. 清除浏览器缓存;2. 禁用浏览器缓存;3. 配置 Nginx 允许客户端缓存;4. 检查文件权限;5. 检查文件哈希;6. 禁用 CDN 或反向代理缓存;7. 重启 Nginx。

服务器无权访问所请求的资源,导致 nginx 403 错误。解决方法包括:检查文件权限。检查 .htaccess 配置。检查 nginx 配置。配置 SELinux 权限。检查防火墙规则。排除其他原因,如浏览器问题、服务器故障或其他可能的错误。
