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

StackOverflow https://stackoverflow.com/questions/2486843

Вопрос

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

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

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

Это было полезно?

Решение

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

#  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)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top