PHP-Skript "als Server" laufen lassen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHP-Skript "als Server" laufen lassen

    Hallo zusammen,

    angenommen ich habe ein Skript vorliegen, welches komplizierte Berechnungen vornimmt, also SEHR zeitintensiv ist. Ist es möglich das Skript so einzurichten, dass es quasi "als Server" läuft? Damit meine ich: kann ich (1.) das Skript im Browser starten, (2.) den Browser schließen und (3.) ab und zu vorbeischauen, wie weit das Skript ist?

    Ich gebe zu, dass das vermutlich eine sehr weitgefasste Frage ist. Aber vielleicht kann mir ja der ein oder andere - vielleicht sogar aus eigener Erfahrung - schematisch/grob erklären, wie ich vorzugehen habe, das wäre genial!

    Vielen Dank im Voraus und viele Grüße,
    Chris
    Zuletzt geändert von squirrelcgn; 05.12.2009, 04:12.

  • #2
    Mache dich kundig, was xinetd tut.
    Und überhaupt, was ein daemaon ist, denn auf einen solchen läuft es scheinbar hinaus.
    Wir werden alle sterben

    Kommentar


    • #3
      Die robusteste Art sowas zu implementieren dürfte, wie combie schon sagt, ein Daemon sein. Das führt aber, wie xinetd, weit über PHP hinaus.

      Die einfachste PHP-Implementation dürfte ein Skript sein, das den Stand seiner Berechnungen regelmäßig in eine Logdatei schreibt. Dieses Skript startest Du von einem Browserseitig aufgerufenen Skript z.B. mit

      Code:
      php -f <dateiname>
      wenn das "Server"-Skript nichts ausgibt, müßte der PHP-Prozeß im Hintergrund weiterlaufen, auch wenn das Browserskript endet.

      Es könnte auch sein daß du das Skript nur mit

      Code:
      nohup php -f <dateiname>
      als Hintergrundprozeß angestoßen bekommst.

      Dein Browserseitiges Skript ruft nun, z.B. über einen sich regelmäßig selbst aktualisierenden IFRAME, den Stand der Ausgabe des "Server"-Skripts ab. Dabei schreibt das Server-Skript am Besten die komplette HTML-Datei in ein Verzeichnis im Webroot, dann mußt du sie nur noch aufrufen. Optimalerweise enthält die geschriebene Datei auch gleich die Anweisung, sich selbst zu aktualisieren.

      Das ganze erfordert natürlich weitgehende exec-Rechte für PHP auf dem Server. Aber die brauchst Du für sowas so oder so.

      PHP ist als Interpretersprache nicht sehr performant und wird für solche Zwecke aus gutem Grund nur selten eingesetzt.
      Zuletzt geändert von pekka; 05.12.2009, 18:19.

      Kommentar


      • #4
        Vielen Dank combie und pekka für eure Antworten!

        @pekka: deine Antwort bringt mich ein GROßES Stück weiter, super!! Ich verstehe, dass man es "eigentlich" und professionell mittels eines Daemons lösen sollte, was mir aber für mein Projekt (momentan) übertrieben scheint.
        Werde auf jeden Fall deine (meiner Meinung nach) sehr schön nachvollziehbare und einfache Vorgehensweise anwenden! Habe alles verstanden, bis auf den Satz "Optimalerweise enthält die geschriebene Datei auch gleich die Anweisung, sich selbst zu aktualisieren." - wo ist darin der zusätzliche Vorteil? Ich werde doch ein IFRAME so einstellen, dass es sich quasi immer den aktuellen Stand der Log-Datei (txt?) holt. Klingt für mich etwas redundant.

        Danke und viele Grüße,
        Chris

        Kommentar


        • #5
          Zitat von squirrelcgn Beitrag anzeigen
          bis auf den Satz "Optimalerweise enthält die geschriebene Datei auch gleich die Anweisung, sich selbst zu aktualisieren." - wo ist darin der zusätzliche Vorteil? Ich werde doch ein IFRAME so einstellen, dass es sich quasi immer den aktuellen Stand der Log-Datei (txt?) holt. Klingt für mich etwas redundant.
          Was ich meinte, war ein "meta refresh" im generierten Dokument. Wenn Du das neu laden via Javascript oder Ajax (ohne Iframe) machst, brauchst du das natürlich nicht.

          Kommentar


          • #6
            Ahhh, alles klar!

            Thanks und cheers,
            Chris

            Kommentar

            Lädt...
            X