php - 多站点服务器配置中的 Apache 控制
问题描述
我有一个运行灯堆栈的 ubunto vm,现在,一个域名重定向到 vm 的 IP 地址。概念明智的主要原则是我希望用户注册一个帐户并获得一个在我自己域的子域上运行的“网站”。使用 apache vhosts 等中的通配符子域和 certbot 我设法自动使所有子域受 ssl 保护,这部分很容易。
现在,如果客户想购买他/她自己的域名,我或其他注册商需要将 A 记录指向我的 IP 地址,并将 CNAME 从 www 指向域名。最后,我需要在站点可用文件夹下添加一个 vhost 文件,为该新域名配置虚拟主机文件并“优雅地”重新启动 apache。
问题就在这里。如何操作 apache vhosts 文件等,以便在我的主网站上按一下按钮即可完成此操作?我在后端使用 PHP 并在 php(shell exec 等)中执行它似乎存在安全风险..
我在 GCP 上运行,因此 GCP 的任何服务都可用。
提前致谢。
解决方案
如果您担心服务器中的 shell 脚本,您可以在另一台机器上使用 SSH 运行应用程序;它可以是一个小实例,应用程序可以是仅在 Windows 上可用的腻子之类的东西。你应该找到一些与 Linux 相关的东西,因为有很多替代品可用。使用 SSH 客户端应用程序和 Python 语言来自动化它。
由于手动过程涉及多次运行相同的命令,您可以创建虚拟主机文件并查看文件是否在站点可用目录等中创建。
新用户注册您的服务后,您需要创建虚拟主机文件并运行 chown 命令并查看文件是否在目录中的站点中创建并重新启动您的 apache。您可以参考在您的服务器上自动设置虚拟主机中的步骤。
推荐阅读
- algorithm - LeetCode 最长递增子序列
- sql - 基于与 Hive 中的数组比较的聚合列
- postgresql - 在 where 子句 postresql 中的情况
- javascript - 当我切换他的道具时,我的组件不会重新渲染
- typescript - 需要在 refcount 为零时使用带有清理的 rxjs 库来实现多播
- c - 为什么 OpenMP 减少在共享内存结构上比 MPI 慢?
- python - 如何计算 k 折交叉验证的准确率、精度、召回率、f1_score 或修复此代码?
- java - Java中的CDT到EST时间转换未格式化
- python - python - 如何倒计时直到生日(两个日期之间)
- python - 如何使用 Python Selenium 找出网站中存在的特定元素?