backbone: /Apache: funktion um http-server neu zu starten

hi folks,

gibt es ne funktion mit der ich den apachen neu starten kann bzw. hat jemand einen idee wie ich dies unter php realisieren könnte? als einschränkung gilt nur: die sollte mit php zu realisieren sein so das ic h dies von überall (via web-interface) machen kann. als os steht windows zur verfügung.

thx for help.

tschau

  1. Hallo backbone,

    Wenn das überhaupt gehen sollte, dann nur über die entsprechenden Funktionen
    zur Dateiausführung (http://php3.de/exec). Damit kannst du versuchen,
    die apache.exe mit "apache -k restart" aufzurufen.
    Ich bezweifle aber, dass das geht zumal ja sonst auch auf dem Webserver bei
    einem Provider (sofern exec usw. aktiviert) Müll gebaut werden kann und der
    Server dauernd neu gestartet wird.
    Außerdem würde dadurch ja die Scriptausführung unterbrochen, oder?

    Grüße
      David

    --
    >>Nobody will ever need more than 640k RAM!<<
    1981 Bill Gates
    1. moin...

      Wenn das überhaupt gehen sollte, dann nur über die entsprechenden Funktionen
      zur Dateiausführung (http://php3.de/exec). Damit kannst du versuchen,
      die apache.exe mit "apache -k restart" aufzurufen.

      danke für den tipp. werde ich mich mal belesen

      Ich bezweifle aber, dass das geht zumal ja sonst auch auf dem Webserver bei
      einem Provider (sofern exec usw. aktiviert) Müll gebaut werden kann und der
      Server dauernd neu gestartet wird.

      jo, das hatte ich mir auch schon überlegt. doch bei mysql gibt es eine funktion mit der ich zum beispiel unter myphpadmin den mysql-server neu starten kann.

      Außerdem würde dadurch ja die Scriptausführung unterbrochen, oder?

      das ist wohl war und - glaube ich - auch der knackpunkt. na mal gucken.

      tschau

      1. Nein. Es sollte unter Linux NICHT gehen, per Script den Apache neu zu starten und das hat einen simplen Grund, denn: nur root kann auf Port 80 binden, folglich muss die Initialisierung des Apache auch als root erfolgen. Ein Stoppen und erneutes Starten des Apache-Servers geht mit den Laufzeit-Rechten von nobody also nicht - und das ist auch gut so. Von suexec etc. rate ich dir jetzt gleich mal ab.

        MySQL ist was anderes, es bringt in seinem Befehlssatz einen Reload-Command mit, der natürlich auch über PHP ausgeführt werden kann.

        Eine Alternative wäre natürlich Webmin o. ä. aber dazu würde ich dir nicht raten. Musst du denn deinen Apache so oft neu starten? Hast du keinen SSH-Access? Ich restarte meinen Apache bestenfalls jeden Monat einmal...

        1. moin...

          »»Hast du keinen SSH-Access? Ich restarte meinen Apache bestenfalls jeden Monat einmal...

          also ich hab _noch_ SSH eingerichtet weil mir das unter windows noch ein bischen suspect ist. wäre aber mal ne möglichkeit das dadrüber zu regeln. naja, und neustarten will ich das teil auch nur wenn ich zum beispiel änderungen an meiner http.conf oder meiner php.ini vorgenommen habe. dann ist ein neustart ja zwingent notwendig.

          wie muss ich das bei SSH machen? nen extra service installieren oder bringt windoof das gleich mit?

          tschau und thx

          1. Mh, ich war zu fest auf Linux fixiert. Es gibt OpenSSH für Windows, habe damit allerdings keine Erfahrungen.
            [url:http://lexa.mckenna.edu/sshwindows/]

            Musst du den Apache Server dann zwingend remote neu starten?

            1. moin!

              Musst du den Apache Server dann zwingend remote neu starten?

              nein, zwingent nicht aber es ist halt praktischer weil ich nicht immer direkt am server sitz bzw. ich die einstellungen auch von unterwegs ändern will bzw. zukünftig muss. werd mich wohl mal mit openSSH befassen. wird wohl die sicherste lösung sein wobei ich die sache auch gern via webinterface gelöst hätte.

              tschau

              1. nochmal aloha...

                habe mich jetzt mal im netz umgeschaut und bin auf http://www.openssh.com/ gestossen. nun musste ich aber dort erfahren das es zwar für x unix-versionen openssh gibt nur für windows net. das hat mich stutzig gemacht und ich hab nach ner windows version geschaut doch zu meinem erneuten erstaunen nichts gefunden. nun wolltsch mal fragen ob mich mal jemand helfen kann und mich mal nen link bzw. tipps geben kann.

                tschau und schonmal thx.

    2. Hallo David,

      Wenn das überhaupt gehen sollte, dann nur über die entsprechenden Funktionen
      zur Dateiausführung (http://php3.de/exec). Damit kannst du versuchen,
      die apache.exe mit "apache -k restart" aufzurufen.

      Unter Linux geht das prima, wenn die entsprechenden Rechte geklärt sind.

      Ich bezweifle aber, dass das geht zumal ja sonst auch auf dem Webserver bei
      einem Provider (sofern exec usw. aktiviert) Müll gebaut werden kann und der
      Server dauernd neu gestartet wird.

      Genau, deswegen wirst du es _da_ auch nicht dürfen, bei einem eigenen Root-Server beispielsweise jedoch schon.

      Außerdem würde dadurch ja die Scriptausführung unterbrochen, oder?

      Ist das relevant? Man könnte ja auch ein Shell-Script anstoßen, das, nachdem der Indianer wieder läuft, ein anderes Hilfs-Script anstößt, das danach alles wieder richtet. Das macht insbesondere dann Sinn, wenn man den Server aufgrund von Rekonfiguration neu starten musste.

      Das ganze wird unter Windows jedoch mindestens ein wenig umständlicher zu realisieren sein, als auf *nix.

      Grüße aus Barsinghausen,
      Fabian