Per PHP herausfinden, ob es als CGI oder Modul läuft

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

  • Per PHP herausfinden, ob es als CGI oder Modul läuft

    Hallo allerseits,

    z.B. bei 1 & 1 läuft PHP als CGI, bei vielen anderen Hostern dagegen als Modul. Da sich dies u.a. auf die HTTP-Statuscodes auswirkt - z.B. header('Status: 301 Moved Permanently') statt header('HTTP/1.1 301 Moved Permanently') - wüsste ich gerne, ob Ihr eine gute Möglichkeit kennt, das Skript selber herausfinden zu lassen, in welcher Variante PHP auf dem betreffenden Server läuft.

    Danke & Grüße,
    Erik

  • #2
    Befrage doch mal phpinfo() !
    Dieses zeigt dir wo du die Info abfragen kannst.

    z.B. header('Status: 301 Moved Permanently') statt header('HTTP/1.1 301 Moved Permanently')
    Ja?
    Bisher dachte ich, dass PHP aus einem header('Satus: 301');immer automatisch einen "HTTP/1.1 301 Moved Permanently" macht....
    Wir werden alle sterben

    Kommentar


    • #3
      Zitat von combie Beitrag anzeigen
      Befrage doch mal phpinfo()
      Danke, das brachte mich auf "Server API" und das wiederum auf php_sapi_name(), und damit geht es.

      PHP-Code:
      // PHP als Modul oder CGI
      if (strpos(php_sapi_name(), 'cgi') !== false)
      {
          
      $sapi 'Status: ';
      }
      else
      {
          
      $sapi 'HTTP/1.1 ';

      Zitat von combie Beitrag anzeigen
      Bisher dachte ich, dass PHP aus einem header('Satus: 301');immer automatisch einen "HTTP/1.1 301 Moved Permanently" macht....
      Sieht nicht so aus: Wenn ich mit PHP als Modul meine Fehlerseite testweise mit header('Status: 404 Not Found'); ausgebe, zeigt mir Web-Sniffer nicht 404, sondern 200...

      Kommentar


      • #4
        Sieht nicht so aus:
        Stimmt, als Modul machts das nicht.
        Warum dann nicht immer selber "HTTP/1.1 301 Moved Permanently" senden?
        Das scheint ja in beiden Varianten zu funktionieren.
        Wir werden alle sterben

        Kommentar


        • #5
          Zitat von combie Beitrag anzeigen
          Warum dann nicht immer selber "HTTP/1.1 301 Moved Permanently" senden?
          Auch das geht nicht, da bei PHP als CGI "Status" genommen werden muss (denn auch da zeigt z.B. Web-Sniffer verschiedene Resultate), siehe z.B. WordPress › Support problems running under php/fastcgi - man muss die Unterscheidung also leider machen.

          Kommentar

          Lädt...
          X