创建/修改虚拟主机并从内部 Rails 应用程序重新加载 Apache

发布于 2024-08-26 04:17:30 字数 193 浏览 8 评论 0原文

我的应用程序是一组两个 Rails 应用程序。基于第一个应用程序中的一些参数。我需要设置第二个应用程序的虚拟主机。我只需要更改 apache VH 中的 ServerName 和 ServerAlias 并使用 a2ensite 启用该站点,然后“apache2 reload”。

如何在 Rails 应用程序中执行此操作?

谢谢, 伊姆兰

My application is a set of two rails applications. Based on some parameters in first app. I need to setup the virtual host of the second app. I just need to change the ServerName and ServerAlias in apache VH and enable the site using a2ensite and then 'apache2 reload '.

How can I do this from within a rails application?

Thanks,
Imran

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

你げ笑在眉眼 2024-09-02 04:17:30

首先:请注意,允许 Web 应用程序更改服务器配置存在安全风险。

#  First, open the config file
fd=File.open('/etc/apache2/sites/yoursite', 'r+')
#  read in the contents
content=fd.read
#  now replace the ServerName and ServerAlias lines with your new setting
if content.gsub!(/ServerName(.*)/,"ServerName NewServerName") and content.gsub!(/ServerAlias(.*)/,"ServerAlias NewServerAlias")
  fd.rewind
  puts "\tsaving file"
  fd.write content
end
fd.close

我没有测试代码和正则表达式,请将配置文件的相关部分加载到 rubular.com 并推出您自己的正则表达式。

也许您还应该在保存之前进行备份

File.copy(file,file+".bak",true)

First of all: be aware that enabling web-apps to change the server configuration is a security risk.

#  First, open the config file
fd=File.open('/etc/apache2/sites/yoursite', 'r+')
#  read in the contents
content=fd.read
#  now replace the ServerName and ServerAlias lines with your new setting
if content.gsub!(/ServerName(.*)/,"ServerName NewServerName") and content.gsub!(/ServerAlias(.*)/,"ServerAlias NewServerAlias")
  fd.rewind
  puts "\tsaving file"
  fd.write content
end
fd.close

I did not test neither code nor the regular expressions, please load the relevant parts of your config file into rubular.com and roll your own regex.

Maybe you should also make a backup before saving using

File.copy(file,file+".bak",true)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文