如何在同一机器上运行多个多站点网络

时间:2014-07-09 作者:Ken Prince

我正在本地使用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测试。这很奇怪,因为我的虚拟主机文件中有一个通配符条目。

1 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

否,在单个VVV设置中运行多个多站点安装应该不会有问题。当我键入此内容时,我的机器上至少运行了4个多站点安装。

您的问题可能是因为您的多个站点相同,并且共享数据库表和/或URL,或者您已经添加了一个子域站点,现在需要重新配置VVV以在主机文件和NGINX中获取新的子域。

尝试从命令行运行此命令:

vagrant halt; vagrant up --provision
并确保您的2次安装具有单独的表/数据库名称/URL。VVV设置将为您提供一个带有Nginx的标准服务器堆栈,除了如何配置之外,没有什么特别之处。

结束

相关推荐

使用wp-cli将WP Networks/MultiSite从3.5.1更新到3.8

我收到了一个WP Networks站点,该站点在RHEL 5.8上运行WP(Networks)3.5.1,并连接了大约40个站点。我认为有必要更新到3.8。根据背景,我更熟悉使用Drush. 我的第一个直觉是wp-cli 运行更新。这是WP社区中首选的更新方法,还是我最好从tar ball中交换php文件?也就是说,我可以依靠wp-cli 要运行从3.5.1到3.8的干净更新?非常感谢!