Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
aus 2 config Dateien eine bauen

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - Allgemein
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
jochen123



Anmeldungsdatum: 21.08.2006
Beiträge: 23

BeitragVerfasst am: 05. Feb 2009 13:08   Titel: aus 2 config Dateien eine bauen

Hallo,

hänge gerade an einem kleinen Problem.
Ich möchte die httpd.conf vom apache durch ein Script mit den richtigen Werten füllen und erstellen.

httpd.sample # std httpd.conf

httpd.sets # Variablen für Apache
ServerName = test.de
IP = 192.168.x.x
Port = 80

httpd.conf # conf Datei die generiert werden soll.

Folgenden Versuch wurde schon gemacht: ( Vorher wurden die Variablen gesetzt(export IP=192...) httpd.sets nicht verwendet )
Code:
for i in `cat httpd.test`; do eval "echo $i"; done


Problem ist das er dann einen Zeilenumbruch einbaut:
ServerName
test.de


Hat vielleicht einer eine Idee wie man dies Umsetzen könnte?
Super wäre es wenn man dem apache beim Starten ein Script übergibt ( -f file ),
welches dann aus den beiden Dateien die httpd.conf baut. Bin mir aber noch nicht sicher ob dies funktioniert.

Bin für jeden Tipp Dankbar

Gruß Jochen
 
Benutzer-Profile anzeigen Private Nachricht senden

Janka



Anmeldungsdatum: 11.02.2006
Beiträge: 3569

BeitragVerfasst am: 05. Feb 2009 15:42   Titel:

Wenn ich dich richtig verstehe, möchtest du bestimmte Variablen in der Apache-Konfigurationsdatei durch Umgebungsvariablen ersetzen.

Ich würde sowas mit Tcl machen.
Code:

#!/usr/bin/tclsh
foreach {VAR VALUE} [array get env] {set $VAR $VALUE}
puts [subst -nobackslashes -nocommands [read stdin]]

Das Skript fügt alle exportierten Umgebungsvariablen in das Template ein. Aufrufen mit
Code:

./filloutwithenv <template >output


Janka
_________________
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
 
Benutzer-Profile anzeigen Private Nachricht senden

jochen123



Anmeldungsdatum: 21.08.2006
Beiträge: 23

BeitragVerfasst am: 06. Feb 2009 11:15   Titel:

hey Janka,

dank dir. Ist genau das was ich gesucht habe.
Hast mir vor über nem Jahr schon mal mit tcl/expect geholfen Smile

Hab leider seit dem nichts mehr mit expect gemacht. Werde ich mal
nachholen.

Weist du oder wer anders zufällig wie man Apache dieses beim Starten übergeben könnte?
Also in etwa so: ./apachectl -f filloutwithenv
Das er dann erst durch das Script die httpd.conf erstellt und gleich an apache übergibt.

Vielleicht hat da ja noch einer ne Idee.
 
Benutzer-Profile anzeigen Private Nachricht senden

Janka



Anmeldungsdatum: 11.02.2006
Beiträge: 3569

BeitragVerfasst am: 06. Feb 2009 11:25   Titel:

jochen123 hat folgendes geschrieben::

Weist du oder wer anders zufällig wie man Apache dieses beim Starten übergeben könnte?
Also in etwa so: ./apachectl -f filloutwithenv
Das er dann erst durch das Script die httpd.conf erstellt und gleich an apache übergibt.

Wenn dein Apache, wie das üblich ist, von einem Initskript gestartet wird, kannst du bei apachectl nur Kommandos übergeben, keine Optionen. Schreib dann die Template-Bastelei vor den httpd-Aufruf in das Init-Skript hinein. Dann musst du bei einer Variablenänderung aber jeweils das Initskript starten, apachectl ist dann wirkungslos.

Janka
_________________
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
 
Benutzer-Profile anzeigen Private Nachricht senden

jochen123



Anmeldungsdatum: 21.08.2006
Beiträge: 23

BeitragVerfasst am: 06. Feb 2009 12:10   Titel:

Hm wenn das mit dem Script übergeben nicht geht werde ich es wohl so machen müssen.

Dann bleibt nur noch eine Frage Smile

Die Variablen würde ich dann in eine "httpd_variables" Datei schreiben und aus dieser + httpd.temp die httpd-conf bauen.

Bin in TCL wie gesagt noch nicht so gut... Wäre nett wenn du mir noch nen Tipp geben könntest wie ich bei deinem Script eine datei angeben kann wo die Variable drin stehen.
Hatte ja vorher nur auf der console nen export gemacht.

Danke & Gruß
 
Benutzer-Profile anzeigen Private Nachricht senden

Janka



Anmeldungsdatum: 11.02.2006
Beiträge: 3569

BeitragVerfasst am: 06. Feb 2009 23:52   Titel:

Schreib eine Datei, in der die Variablen so definiert werden:
Code:

set NAME1 WERT1
set NAME2 WERT2
...

Dann änderst du das Skript oben wie folgt
Code:

#/usr/bin/tclsh
source /pfad/zur/Variablendatei
puts [subst -nobackslashes -nocommands [read stdin]]

Janka
_________________
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
 
Benutzer-Profile anzeigen Private Nachricht senden

jochen123



Anmeldungsdatum: 21.08.2006
Beiträge: 23

BeitragVerfasst am: 20. Feb 2009 11:56   Titel:

dank dir !
 
Benutzer-Profile anzeigen Private Nachricht senden

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - Allgemein Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy