Autor Thema: httpd.conf programmatisch neu anziehen  (Gelesen 1478 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline der.hobbit

  • Männliche Rollenspielerfreundin
  • Famous Hero
  • ******
  • So isses. Oder anders.
  • Beiträge: 2.498
  • Geschlecht: Männlich
  • Username: der.hobbit
    • Abenteuer Archiv
httpd.conf programmatisch neu anziehen
« am: 13.03.2009 | 15:36 »
um mir die Verwaltung meiner virtuellen Hosts etwas zu erleichtern, habe ich ein PHP-Programm geschrieben, das mir automatisch die httpd.conf und die hosts Datei von Windows aktualisiert.
Das funktioniert soweit ganz gut, nur muss ich noch manuell einen restart des Apaches durchführen, damit er die geänderte Konfigurationsdatei zieht.

Unter (Ubuntu-)Linux gibt's da wohl die Möglichkeit, mittels apache2 reload die Konfiguration zur Laufzeit neu zu laden, weiß jemand, wie man das unter Windows XP machen könnte? httpd -k restart würde mir ja das eigene Skript abschießen.
Forenrollenspiel? FFOR!
Superhelden? FFOR!

Ein

  • Gast
Re: httpd.conf programmatisch neu anziehen
« Antwort #1 am: 13.03.2009 | 19:10 »
Du willst von deinem Skript aus eine Batchdatei mit folgenden Code starten:

ping www.google.com -n 3
httpd -k restart

Der Ping wirkt hier wie ein Warten-Befehl, den so es unter Windows nicht gibt. Eventuell n hochsetzen, wenn du mehr Zeit brauchst, aber im Grunde solltest du das eh am Ende ausführen.

oder mit Windows 2003 Resource Kit

sleep 3
httpd -k restart

Btw, was wäre schlimm daran, wenn du das Skript ganz am Ende durch den Neustart des Servers abschießen würdest?
« Letzte Änderung: 13.03.2009 | 19:14 von Ein »

Offline der.hobbit

  • Männliche Rollenspielerfreundin
  • Famous Hero
  • ******
  • So isses. Oder anders.
  • Beiträge: 2.498
  • Geschlecht: Männlich
  • Username: der.hobbit
    • Abenteuer Archiv
Re: httpd.conf programmatisch neu anziehen
« Antwort #2 am: 13.03.2009 | 19:50 »
Das mit dem Sleep habe ich mir auch schon überlegt, das klingt ganz gut. Werde ich mal testen.

Wenn ich mir das Skript selbst abschieße, dann wird evtl. der Output nicht mehr rausgeschickt. Und der sollte möglichst vollständig sein, damit da ein nettes AJAX Skript den Server pingen kann und sobald der da ist kann man gleich den Installer vom CMS (das auf Wunsch installiert wurde) auf dem neu eingerichteten Server starten.

Außerdem ist Selbstmord auch für Skripte unschön - zumindest, wenn diese nicht elegant sind. Und den Papaprozess töten und dabei selbst untergehen ist unschön ;)
Forenrollenspiel? FFOR!
Superhelden? FFOR!

Ein

  • Gast
Re: httpd.conf programmatisch neu anziehen
« Antwort #3 am: 13.03.2009 | 20:18 »
Naja, eigentlich ist es schon unschön, dass du überhaupt neustarten musst. ;)

Offline der.hobbit

  • Männliche Rollenspielerfreundin
  • Famous Hero
  • ******
  • So isses. Oder anders.
  • Beiträge: 2.498
  • Geschlecht: Männlich
  • Username: der.hobbit
    • Abenteuer Archiv
Re: httpd.conf programmatisch neu anziehen
« Antwort #4 am: 13.03.2009 | 20:30 »
Jupp. Darum fände ich es auch toll, wenn es eben etwas wie das Linux Apache Tool gäbe, dass einen reload der Konfiguration zur Laufzeit ermöglicht. Aber ich fürchte, dass das von der Linux Version abhängt und auf Windows nicht geht - zumindest habe ich nichts Vergleichbares im Netz gefunden. :(
Forenrollenspiel? FFOR!
Superhelden? FFOR!

Offline duke

  • Mortifered
  • TechSupport
  • Hero
  • *****
  • Unfähigster Admin
  • Beiträge: 1.970
  • Geschlecht: Männlich
  • Username: duke
    • Duke's Home
Re: httpd.conf programmatisch neu anziehen
« Antwort #5 am: 16.03.2009 | 17:32 »
apachectrl graceful (so funktioniert es jedenfall unter unix)

Unter Windows weiß ich leider auch nicht, wie man einen "graceful restart" hinkriegt. Wenn man apache als Service einrichtet und dort "neu starten" wählt, dann fährt der den Service auch runter und wieder hoch.

... suchsuch ...

Aha. Unter Windows soll "httpd.exe -k restart" einen graceful restart bewirken (httpd.exe /? zeigt die Optionen). Hmm.

« Letzte Änderung: 16.03.2009 | 17:43 von duke »
http://www.technotrouser.de - Roleplaying-Bereich: User: [das spielsystem] Pass: [die raumstation] (alles klein- und zusammenschreiben)

Noch heute sind seine elektrifizierten buddhistischen Gebetsmühlen bekannt, vor allem die Modelle mit hoher Umdrehungszahl, die 18 000 Gebete in der Minute erreichen.
 Stanisław Lem - Sterntagebücher, 28. Reise

Ein

  • Gast
Re: httpd.conf programmatisch neu anziehen
« Antwort #6 am: 16.03.2009 | 19:09 »
Jo, scheint so. Müsste man wohl einfach mal ausprobieren.

Offline der.hobbit

  • Männliche Rollenspielerfreundin
  • Famous Hero
  • ******
  • So isses. Oder anders.
  • Beiträge: 2.498
  • Geschlecht: Männlich
  • Username: der.hobbit
    • Abenteuer Archiv
Re: httpd.conf programmatisch neu anziehen
« Antwort #7 am: 16.03.2009 | 20:24 »
httpd -k restart hatte ich ja schon in meinem Eingangspost erwähnt, aber ist das so graceful, dass er seine Skripte (die genau diesen Call ausführen) auch noch abschließt?

Falls ja, dann säße nämlich mein Problem nicht am Restart vom Apache, sondern am asynchronen Systemcall - den ich eigentlich korrekt wähnte (denn wenn das Skript auf das Ergebnis des Restarts wartet, dann ist das ziemlich dämlich ...)
Forenrollenspiel? FFOR!
Superhelden? FFOR!

Ein

  • Gast
Re: httpd.conf programmatisch neu anziehen
« Antwort #8 am: 16.03.2009 | 20:35 »
Laut Doku warten die Child-Prozesse bis sie ihren aktuellen Request abgearbeitet haben, bevor sie sich beenden.

Offline Thalamus Grondak

  • Mythos
  • ********
  • Beiträge: 9.220
  • Geschlecht: Männlich
  • Username: Thalamus Grondak
Re: httpd.conf programmatisch neu anziehen
« Antwort #9 am: 16.03.2009 | 23:15 »
wie führst du denn den Systemcall aus?
Even if you win the Rat race, you´re still a Rat