本地多站点安装是否等同于多个虚拟主机?

时间:2021-05-07 作者:Rickmakeitquick

将alocal multisite installation 实现与在httpd虚拟主机中设置多个单独的虚拟主机相同的功能。conf,即使生产环境中的站点不是多站点?

1 个回复
SO网友:Rickmakeitquick

简化了原来的问题,所以这个答案是针对我最初提出的关于Apache设置的更具体的问题。

Apache variable DOCUMENT\\u ROOT和PHP variable doc\\u ROOT是否需要精确匹配?

在我的本地开发设置中,在MAMP for Windows下的httpd文件中。conf I将DocumentRoot设置为

DocumentRoot "C:/MAMP/htdocs"
而在httpd VHOST中。形态I设置

DocumentRoot "C:/MAMP/htdocs/my-dev-install"
对于一个站点来说,这似乎可以,但如何让多个站点在localhost上工作,而不必打开和关闭每个虚拟主机来在站点之间切换?

我会在找到碎片后更新此答案。

第一DocumentRoot httpd VHOST中的定义。conf将覆盖httpd中定义的默认值。形态,

它响应任何未由定义处理的请求。这些值还为您稍后在文件中定义的任何容器提供默认值。

--(来自httpd.conf的评论)

我的hosts 文件:

127.0.0.1     example.d1
::1             example.d1
127.0.0.1     example.d2
::1             example.d2
我的httpd-vhosts.conf:

NameVirtualHost *:80

# ======= New  - theme 1 =======
 <VirtualHost *:80> 
    DocumentRoot "C:/MAMP/htdocs/my-dev-install-1"
    ServerName example.d1
    ServerAlias example.d1
    # these 4 lines enable error logs       ====modify the log names to make it clear which dev site the errors belong to
    RewriteLogLevel 3
    RewriteLog "C:/MAMP/logs/rewrite.log"
    ErrorLog "C:/MAMP/logs/d1-error_log" 
    CustomLog "C:/MAMP/logs/d1-access_log" common 
 </VirtualHost>
 
# ======= New  - theme 2 =======
 <VirtualHost *:80> 
    DocumentRoot "C:/MAMP/htdocs/another-dev-install-2"
    ServerName example.d2
    ServerAlias example.d2
    # these 4 lines enable error logs
    RewriteLogLevel 3
    RewriteLog "C:/MAMP/logs/rewrite.log"
    ErrorLog "C:/MAMP/logs/d2-error_log" 
    CustomLog "C:/MAMP/logs/d2-access_log" common 
 </VirtualHost>
The.htaccess 文件只有标准的WordPress语言(两者之间没有区别)。

部分成功--当我访问时http://example.d1http://example.d2 , Apache将我发送到正确的站点主页。但是,单击中的链接。d2带我回去localhost, 它被定义为第一个网站(example.d1).

可能是我浏览器中的302。或者,也许我需要和NameVirtualHost * 陈述