Создайте / измените виртуальный хост и перезагрузите Apache из приложения Inside Rails - PullRequest
1 голос
/ 21 марта 2010

Мое приложение представляет собой набор из двух приложений рельсов. На основании некоторых параметров в первом приложении. Мне нужно настроить виртуальный хост второго приложения. Мне просто нужно изменить ServerName и ServerAlias ​​в apache VH и включить сайт с помощью a2ensite, а затем «apache2 reload».

Как я могу сделать это из приложения rails?

Спасибо, Имран

1 Ответ

1 голос
/ 17 апреля 2010

Прежде всего: имейте в виду, что включение веб-приложений для изменения конфигурации сервера представляет собой угрозу безопасности.

#  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)
...