我不确定我所问的问题是否可行,但我想向聪明的系统管理员请教。我有一个域,mysite.com
我向其中添加了子域。然后我在每个子域上安装了一个软件。
有没有什么办法可以自动化这个过程,以便我可以直接从我的本地主机开发环境连接,然后运行这个脚本,在其上添加subdomain1.mysite.com
和安装software1
,或者在其上添加subdomain2.mysite.com
和安装这个software2
?
由于我是一名开发人员并使用共享主机,因此我更倾向于使用 .htaccess 的解决方案(如果存在)。如果没有,我有什么选择?
答案1
那么 Apache 在您自己的机器上运行吗?
您可以使用模块mod_vhost_alias。启用后,添加
VirtualDocumentRoot /var/www/virtual/%0
到您的主配置/虚拟主机。
这意味着:/var/www/virtual 以下的所有内容都被视为虚拟主机,无需配置,只需创建目录(因此易于编写脚本)。
对于“%0”的配置,您的文件夹必须如下所示:
/var/www/virtual/mysite.com
/var/www/virtual/subdomain1.mysite.com
“安装软件”有点笼统,请描述手动安装时涉及哪些步骤。
答案2
我无法在 httpd 方面提供建议,但就 DNS 而言...如果您正在寻找自动创建 DNS 的方法,您可以考虑使用通配符 DNS 条目。如果您将 * 定义为主机,A 记录为 1.2.3.4,这会将区域内未明确定义的所有内容指向 1.2.3.4,CNAME 和 MX 记录也是如此。
希望这有助于部分解决您的疑问。
答案3
不确定是否可以通过 .htaccess 添加 vhosts(或者仔细想想,这是否真的是个好主意)。但是,设置 apache 来扫描目录中的配置文件很简单 - 当我有类似的设置时,我在 /etc/httpd/vhosts 中为每个 vhost 都设置了一个单独的 .conf 文件(现在有些 apache 安装可以开箱即用)。Bind 稍微复杂一些,因为每个 conf 文件都必须由主文件明确引用 - 但一个简单的 sed 脚本就可以解决这个问题。
我还设置了几个模板安装,以便可以自动填充网站。
所以是的 - 这只是编写您已经手动完成的脚本的问题。不清楚问题是什么。
答案4
摘自之前的一个问题
您正在寻求创建自定义 A 记录。
我很确定你可以在指定 A 记录时使用通配符,这样你就可以执行以下操作:
*.mywebsite.com 在 127.0.0.1 中
127.0.0.1 将是您的网络服务器的 IP 地址。实际添加记录的方法取决于您的主机。
这样做http://mywebsite.com/user如果有这个选项的话设置起来会容易得多。
然后您只需添加一个如下所示的 .htaccess 文件:
选项 +FollowSymLinks
RewriteEngine On RewriteRule ^([aA-zZ])$ dostuff.php?username=$1 上面的用户名限制为 az 字符
抓取子域名的重写规则如下:
RewriteCond %{HTTP_HOST} ^(^.).mywebsite.com 重写规则(.)dostuff.php?用户名=%1
这可以解决创建子域的问题,但是软件的安装可以通过很多不同的方式解决。
您是否想要自动安装某个特定软件或是否存在大量不同的软件?