Créer/Modifier un hôte virtuel et recharger Apache à partir de l'application Inside Rails
-
21-09-2019 - |
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
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)