可以自动创建子域名和安装软件

可以自动创建子域名和安装软件

我不确定我所问的问题是否可行,但我想向聪明的系统管理员请教。我有一个域,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

摘自之前的一个问题

https://stackoverflow.com/questions/183928/how-to-let-php-to-create-subdomain-automatically-for-each-user

您正在寻求创建自定义 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

这可以解决创建子域的问题,但是软件的安装可以通过很多不同的方式解决。

您是否想要自动安装某个特定软件或是否存在大量不同的软件?

相关内容