最近花了两个晚上折腾Wordpress多站点,期间各种意外,比如服务器内存不足、FTP无法登陆、Xshell无法使用、服务器需要设置白名单等,好在基本上也搞定了。
一、解析域名
二、停用所有插件
三、开启多站点
在config.php中添加以下代码
define('WP_ALLOW_MULTISITE', true); // 开启多站点功能 define( 'COOKIE_DOMAIN', '' ); // 清除cookie限制,否则开启多站点后登录网站后台会提示“错误:Cookies被阻止或者您的浏览器不支持。要使用WordPress,您必须启用Cookies。”
注意:不要添加到最后,您应该将其添加到下面到代码之前:
if ( !defined('ABSPATH') ) define('ABSPATH', dirname(__FILE__) . '/'); require_once(ABSPATH . 'wp-settings.php');
添加完成后,刷新后台,再次登录应该可以看到“工具”菜单下面多了一个“配置网络”选项。
四、确定您开启多站点的方式
WordPress有两种开启多站点的方式:子域名 和 子目录
五、如果您使用的是子域名方式,检查您的WordPress域名
请确保您的WordPress域名设置为根域名,即不带www的域名,如:http://a.com。注意,要加http。
设置方法:后台菜单栏中找到“设置->常规”,修改其中的“WordPress地址(URL)”。注意与“站点地址(URL)”的区别,“站点地址(URL)”表示浏览器输入什么网址才能访问本站点。
六、开启多站点
七、添加新站点
修改好文件之后,重新进入登录后台,可以发现左上角多了“我的站点”菜单,其中有“管理网络”选项,点击它进入网络的管理界面。
Updated on Mar-27-2020
1.泛域名
昨天花了一个晚上,还没有搞定泛域名解析,其实流程都对,没理由不成功的。今天顺着思路又重新捋了一遍,发现问题出在西数服务器的白名单没有设置成功,导致泛域名无法访问。
另外,在解决问题的过程中我还对伪静态进行了修改,不知这个到底有没有发生作用,暂时留存吧:
location / { index index.html index.php; if (-f $request_filename/index.html){ rewrite (.*) $1/index.html break; } if (-f $request_filename/index.php){ rewrite (.*) $1/index.php; } if (!-f $request_filename){ rewrite (.*) /index.php; } #ignored: "-" thing used or unknown variable in regex/rew 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; } rewrite /wp-admin$ $scheme://$host$uri/ permanent;
Updated on Mar-28-2020
1.在服务器上上面的代码不用加可以正常访问。
2.需要在宝塔添加站点那里添加域名那里加上“xxx.com”,否则这个xxx.com还是无法访问的。
3.泛解析只需要在域名商、宝塔添加域名那里加上“*.xxx.com”,在wordpress建立a.xxx.com网站后,就可以访问了。
网站提示备份
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]
2.主题
解决这个问题之后,后来又发现wordpress多站点无法更换主题,后来找了半天,终于找到了。应该进入“我的站点--管理网络--仪表盘中”下面的主题进行修改。在这里启用主题之后,再到各个站点启用。
3.Wordpress占用内存过大的问题
我使用的是1核1G的服务器,之前跑两个django网站内存占用都只有60%多,现在跑一个网站内存占用都到了80%多,而且我现在自己测试就发现经常MySQL死掉,简直无法用了。
另外,在网上看了一下,别人也反馈过这个问题,有人说1G内存的服务器装wordpress内存占用100%。
后来将服务器上的其他两个网站删除,只留下了一个wordpress网站,暂时可用。
另外,我在另一个只有512M的vultr.com服务器上用lnmp装了一个wordpress,内存只占到215M。
在西数1G的服务器上用宝塔装了一个wordpress(开了多站点),内存占到了756。
参考:
https://blog.csdn.net/lypblog/article/details/83960398
https://www.fujieace.com/wordpress/network-config.html
https://www.bilibili.com/video/av38974943?from=search&seid=10445512335332280729
七、关于插件
只需要在主站上传并激活插件,在所有的子站就可以使用了。
八、后台无法登陆
今天发现主站的后台无法登陆了,在登陆时显示跳转到了
http://www.xxx.net/wp-login.php?redirect_to=http%3A%2F%2Fmaguang.net%2Fxb%2Fwp-admin%2F&reauth=1
后来在网上搜索了一下,使用域名 /wp-admin/index.php 登录后台就可以了。
九、添加主题
打算给网站添加第二套主题的时候发错找不到地方,后来才找到原来也要在
这里添加的。
十、wordpress多站点的数据库是这样的
应该为每一个分站建立了一套数据库。