我的应用程序是一组两个 Rails 应用程序。基于第一个应用程序中的一些参数。我需要设置第二个应用程序的虚拟主机。我只需要更改 apache VH 中的 ServerName 和 ServerAlias 并使用 a2ensite 启用该站点,然后使用“apache2 reload”。
如何从 Rails 应用程序中执行此操作?
谢谢, 伊姆兰
我的应用程序是一组两个 Rails 应用程序。基于第一个应用程序中的一些参数。我需要设置第二个应用程序的虚拟主机。我只需要更改 apache VH 中的 ServerName 和 ServerAlias 并使用 a2ensite 启用该站点,然后使用“apache2 reload”。
如何从 Rails 应用程序中执行此操作?
谢谢, 伊姆兰
首先:请注意,启用 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)