Pro-Linux.de

Pro-Linux

Pro-Linux Diskussions- und Hilfeforum
Aktuelle Zeit: 21. Nov 2018 19:04

Alle Zeiten sind UTC+01:00




Ein neues Thema erstellen  Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: aus 2 config Dateien eine bauen
BeitragVerfasst: 05. Feb 2009 13:08 
Offline

Registriert: 21. Aug 2006 11:45
Beiträge: 23
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


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 05. Feb 2009 15:42 
Offline
Benutzeravatar

Registriert: 11. Feb 2006 19:10
Beiträge: 3569
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.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 06. Feb 2009 11:15 
Offline

Registriert: 21. Aug 2006 11:45
Beiträge: 23
hey Janka,

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

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.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 06. Feb 2009 11:25 
Offline
Benutzeravatar

Registriert: 11. Feb 2006 19:10
Beiträge: 3569
Zitat:
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.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 06. Feb 2009 12:10 
Offline

Registriert: 21. Aug 2006 11:45
Beiträge: 23
Hm wenn das mit dem Script übergeben nicht geht werde ich es wohl so machen müssen.

Dann bleibt nur noch eine Frage :)

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ß


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 06. Feb 2009 23:52 
Offline
Benutzeravatar

Registriert: 11. Feb 2006 19:10
Beiträge: 3569
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 &#91;subst -nobackslashes -nocommands &#91;read stdin&#93;&#93;
Janka

_________________
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 20. Feb 2009 11:56 
Offline

Registriert: 21. Aug 2006 11:45
Beiträge: 23
dank dir !


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 7 Beiträge ] 

Alle Zeiten sind UTC+01:00


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de