【问题标题】:Virtual Subdomain with Username带有用户名的虚拟子域
【发布时间】:2015-05-21 13:59:42
【问题描述】:

我使用 Symfony2。 我有一个示例site.com。如何使用用户名进行动态虚拟子域。当用户登录时 url 显示username.site.com。但是username.site.com 等于site.com。我能怎么做?

【问题讨论】:

  • 至少你必须添加通配符 DNS 记录:* IN A server_ip_address,并在 apache 的虚拟主机配置中添加通配符别名:ServerAlias *.site.com
  • 如果不创建自己的 DNS 服务器,您基本上无法做到这一点。例如,我使用 powerdns 和 mysql,我之前创建了一个系统,我可以在其中根据另一个数据库动态添加 A 记录。即,您通过 cron 检查用户表并为每个用户创建子域。然后你需要另一个 cron 来用新主机修改 apache。最后,您需要在成功登录到正确的子域时进行重定向。这并不容易,老实说,如果你问这个问题,你可能很难做到这一点。
  • 我的网站是CRM System。子域仅用于图像
  • 这个问题如何与 Symfony2 相关联?一旦你有了创建子域的可行方法,从 Symfony2 使用它就不会难了。我建议你把这个问题一分为二:先创建子域(去掉 symfony2 标签),再添加一个与 Symfony2 相关的问题。

标签: php apache .htaccess symfony


【解决方案1】:

很难理解你到底想做什么。但如果我理解正确,这可能会对您有所帮助:http://www.devops.zone/webserver/dynamic-subdomains-with-mod_vhost_alias/

编辑:我将上述链接中的文本和代码包括在内:

对于那些使用大量域的开发服务器或使用某种大规模托管的人,不想重新配置每个域,这个模块可能会很有趣:mod_vhost_alias

首先我们需要激活 apache2 安装中默认包含的模块:

a2enmod vhost_alias

或通过这样做:

cd /etc/apache2/mods-enabled
ln -s ../mods-available/vhost_alias.load vhost_alias.load

然后我们需要创建一个对应的vhost配置:

NameVirtualHost *.example.net
<VirtualHost *.example.net>
        ServerAdmin admin@example.net
        UseCanonicalName Off
        VirtualDocumentRoot /var/www/vhosts/example.net/subdomains/%1

        DocumentRoot /var/www/vhosts/example.net/subdomains/
        <Directory />
           # directory options
        </Directory>
        <Directory /var/www/vhosts/example.net/subdomains/>
          # directory options
        </Directory>

        ErrorLog /var/log/apache2/error.log
        CustomLog /var/log/apache2/access.log combined
</VirtualHost>

假设服务器的名称是 example.net,apache 现在会在 /var/www/vhosts/example.net/subdomains/ 中查找该域的所有子域

示例: test.example.net 将映射到: /var/www/vhosts/example.net/subdomains/test

当然,这不仅适用于子域,这只是一个示例。

【讨论】:

  • 请在您的回答中包含相关文字和代码,如果链接断开,此回答可能无用。
  • 事实上,我想将其作为评论而不是实际答案发布(因为我不明白他真正想要做什么),但我没有足够的代表来做这个.我将包括相关的代码和文本,但我认为它必须被审核。
猜你喜欢
  • 2017-01-06
  • 2012-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多