Apache的多租户虚拟主机设置

时间:2018-05-02 15:53:14

标签: laravel apache virtualhost multi-tenant

我是这个多租户世界的新手。我在本地计算机上使用Laravel构建多租户应用程序(我使用的是MAC OS和apache 2.4)。我想要很多网站都可以随时创建。我正在使用Hyn's multi-tenant package。 Laravel的东西似乎设置正确但是当我点击http://mysite1.mydomain.local时它会给我错误

This site can’t be reached mysite1.mydomain.local’s server IP address could not be found.

我尝试了很多虚拟主机设置组合。

我的httpd-vhosts.conf文件

#    ServerAdmin webmaster@dummy-host2.example.com
#    DocumentRoot "/usr/docs/dummy-host2.example.com"
#    ServerName dummy-host2.example.com
#    ErrorLog "/private/var/log/apache2/dummy-host2.example.com-error_log"
#    CustomLog "/private/var/log/apache2/dummy-host2.example.com-access_log" common
#</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/Library/WebServer/Documents/onboardera/public"
    ServerName onboardera.local
    ServerAlias onboardera.local
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/Library/WebServer/Documents/multi-site/"
    ServerName mydomain.local
    ServerAlias *.mydomain.local
</VirtualHost>

托管文件内容

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1       localhost
127.0.0.1       *.mydomain.local
127.0.0.1       onboardera.local
255.255.255.255 broadcasthost
::1             localhost

我一直在谷歌搜索半天但没有运气。

1 个答案:

答案 0 :(得分:0)

hosts文件的问题在于它不支持通配符。您必须在主机文件中分别指定所有租户(子)域,以使其在本地解析。一个很好的解决方案是使用dnsmasq附带的Laravel valet;您可以将dnsmasq(位于其中的一个域)配置为始终在本地解析。

并且,感谢您使用我的包裹;如果您需要更多支持,请随时加入不和谐聊天;)