Créer/Modifier un hôte virtuel et recharger Apache à partir de l'application Inside Rails

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

Question

Mon application est un ensemble de deux applications rails.Basé sur certains paramètres de la première application.Je dois configurer l'hôte virtuel de la deuxième application.J'ai juste besoin de changer le ServerName et le ServerAlias ​​dans Apache VH et d'activer le site en utilisant a2ensite puis 'apache2 reload'.

Comment puis-je faire cela à partir d'une application Rails ?

Merci, Imran

Était-ce utile?

La solution

Tout d'abord:sachez que permettre aux applications Web de modifier la configuration du serveur constitue un risque pour la sécurité.

#  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

je n'ai pas testé ni le code ni les expressions régulières, veuillez charger les parties pertinentes de votre fichier de configuration dans rubular.com et lancer votre propre regex.

Peut-être devriez-vous également faire une sauvegarde avant de sauvegarder en utilisant

File.copy(file,file+".bak",true)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top