Chris: Apache nach Aufruf einer HTML aktivieren

Hallo Köpfe der Welt.

Ich brauche eure Ideen und mögliche Lösungsvorschläge.

Wenn der Benutzer die Seite index.html Aufruft muss überprüft werden, ob der Apache gestartet ist oder nicht. Falls nicht muss dieser gestartet werden. Der Benutzer muss dann die index.php sehen, sobald der Apache gestartet ist. (Apache läuft auf Windows Server)

Das Problem ist wohl jetzt wie starte ich den Apache via Webseite. (Es ist ein internes Projekt, also nicht sehr security relevant)

Mein primärer Lösungsansatz war:

function initPage() {
 checkIfApacheIsRunning();
}

function checkIfApacheIsRunning()
{
 var w;
 w = new ActiveXObject('WScript.Shell');

var command2execute = 'C:\msys\1.0\bin\tasklist | grep httpd';
 var myResult = w.run(command2execute,0,true);
 alert(myResult);

}

function startApache()
{
//a script that kickstarts apache...
}

Das Problem beim ActiveXObject ist, dass es nicht bei jedem Benutzer funktioniert, da die Seite in die "Trusted Sites" aufgenommen werden muss, oder die Internetsicherheitseinstellungen heruntergestuft werden müssen.

Tja. Nicht sehr ideal.

Hat jemand von euch eine Idee wie ich das Problem noch lösen könnte?

Wäre euch sehr dankbar.

Grüsse Chris

  1. Hello Chris,

    ich verstehe Dich wahrscheinlich falsch, aber irgendwie habe ich übersetzt verstanden:

    wenn einer eine Datei von meinem Server anfordert,
      dann soll der Server starten und die Datei anbieten.

    Das Problem dabei sit mMn, dass ohne das Angebot auch keine Dtei angefordert werden kann.

    Wenn der Apache also nicht läuft, wird vermutlich kein Prozess die Anforderung der index.html beachten, und daher auch kein Prozess die index.html ausliefern können.

    Welcher Prozess soll denn den von Dir entworfenen Code ausführen?
    Der müsste dann doch wenigstens auf dem passenden Port einen HTTP-Request erwarten.
    Und ein Prozess, der das tut, ist meiner Empfindung nach als "Webserver" zu bezeichnen.

    Ein harzliches Glückauf

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
  2. Hallo Chris,

    könntest Du bitte das Szenario klarer darlegen?

    Wenn der Benutzer die Seite index.html Aufruft muss überprüft werden, ob der Apache gestartet ist oder nicht. Falls nicht muss dieser gestartet werden. Der Benutzer muss dann die index.php sehen, sobald der Apache gestartet ist. (Apache läuft auf Windows Server)

    [...] Code mit lokaler Pfadangabe

    Das Problem beim ActiveXObject ist, dass es nicht bei jedem Benutzer funktioniert, da die Seite in die "Trusted Sites" aufgenommen werden muss, oder die Internetsicherheitseinstellungen heruntergestuft werden müssen.

    handelt es sich jeweils um einen lokalen apache auf vielen vielen Rechnern?
    Handelt es sich um genau einen apache auf genau einem Windows-Server und Terminaldiensten?

    Warum nicht den apache als Dienst einrichten?
    Deine derzeitige Konstruktion kann nicht überzeugen - aber ich verstehe das Problem nicht.

    Freundliche Grüße

    Vinzenz

  3. Hallo,

    Wenn der Benutzer die Seite index.html Aufruft muss überprüft werden, ob der Apache gestartet ist oder nicht. Falls nicht muss dieser gestartet werden. Der Benutzer muss dann die index.php sehen, sobald der Apache gestartet ist. (Apache läuft auf Windows Server)

    Dein Problem stellt sich mir so dar:
    Wenn jemand dich auf dem Handy anruft, dann möchtest du dein Handy einschalten, um den Anruf entgegenzunehmen.

    Wie immer du das anstellen willst: Es geht nicht!
    Du kannst nicht auf ein Medium (oder einen Dienst, oder einen Server) zugreifen, wenn dieses Medium (Dienst, Server) noch gar nicht zur Verfügung steht. Dein Apache muss bereits laufen, um überhaupt *festzustellen*, dass jemand eine Ressource von ihm anfordert.

    Hat jemand von euch eine Idee wie ich das Problem noch lösen könnte?

    Was spricht dagegen, den Apachen permanent am Laufen zu halten? Wenn er nicht gefragt wird, verbraucht er nur wenig Speicher und so gut wie keine CPU-Zeit.

    Ciao,
     Martin

    --
    Die letzten Worte der Challenger-Crew:
    Lasst doch mal die Frau ans Steuer!
  4. Hallo.

    Wenn der Benutzer die Seite index.html Aufruft muss überprüft werden, ob der Apache gestartet ist oder nicht. Falls nicht muss dieser gestartet werden. Der Benutzer muss dann die index.php sehen, sobald der Apache gestartet ist. (Apache läuft auf Windows Server)

    Und warum kann der IIS kein Skript ausführen, das den Apache startet?
    MfG, at