我正在本地使用VVV Vagrant VM构建一个多站点项目。
我使用域映射和两个子站点设置了一个子域多站点安装。一切正常。这是我的沙盒,我用它来开始和解决问题。
现在,我已经在同一个VM上设置了一个新的、精确的多站点网络副本(显然URL是不同的)。主站点似乎一切正常,但当我创建一个新的子站点时,它就坏了。我正在为管理员和前端获取404。
由于设置是相同的,所以这很令人困惑。nginx中的配置和vhost相同。Wordpress配置等的配置文件相同。我已经检查并重新检查了所有内容。
因此,我的问题是:在同一个框中运行两个或多个wordpress多站点实例(即同一个MySQL实例)是否存在任何问题。我知道Wordpress使用相同的数据库将博客添加到网络中,只创建带有博客ID前缀的新表。我似乎无法揭示这个问题。
谢谢你的帮助。
好的,现在我已经确认这是可能的,让我们更深入一点。
我已经在nginx中包含了正确的重写,如下所示。两个站点都使用类似的重写。
虚拟主机:
server {
# Determines the port number that nginx will listen to for this
# server configuration. 80 is the default http port.
listen 80;
# Listen for HTTPS requests as well
# listen 443 ssl;
# Tells nginx what domain name should trigger this configuration. If
# you would like multiple domains or subdomains, they can be space
# delimited here. See http://nginx.org/en/docs/http/server_names.html
server_name agency.dev *.agency.dev;
server_name_in_redirect off;
# Tells nginx which directory the files for this domain are located
root /srv/www/agency/web;
######################################
## Testing rewrites to remove /wp ###
######################################
rewrite /wp-admin$ $scheme://$host$uri/ last;
rewrite ^/(wp-.*.php)$ /wp/$1 last;
rewrite ^/(wp-(content|admin|includes).*) /wp/$1 last;
# Includes a basic WordPress configuration to help with the common
# rules needed by a web server to deal with WordPress properly.
include /etc/nginx/nginx-wp-common.conf;
}
在上面,您会注意到从站点URL中删除/wp的重写。我之所以使用此重写,是因为我在子目录中有wordpress核心文件,因为此项目是使用
Roots 主题与
Bedrock.
我确实注意到,当我安装网络时,它没有通过通配符DNS测试。这很奇怪,因为我的虚拟主机文件中有一个通配符条目。
最合适的回答,由SO网友:Tom J Nowell 整理而成
否,在单个VVV设置中运行多个多站点安装应该不会有问题。当我键入此内容时,我的机器上至少运行了4个多站点安装。
您的问题可能是因为您的多个站点相同,并且共享数据库表和/或URL,或者您已经添加了一个子域站点,现在需要重新配置VVV以在主机文件和NGINX中获取新的子域。
尝试从命令行运行此命令:
vagrant halt; vagrant up --provision
并确保您的2次安装具有单独的表/数据库名称/URL。VVV设置将为您提供一个带有Nginx的标准服务器堆栈,除了如何配置之外,没有什么特别之处。