Dreizehnhunderteinundvierzig

Vor einiger Zeit war mir bei meiner Website aufgefallen, dass bei manchen Seiten Meldungen erschienen, dass eine Direktive nicht ausgeführt werden konnte. Ich hielt das für einen reinen Schönheitsfehler, da die Seiten ansonsten normal und funktionsfähig aussahen.
Da ich gerade keine Zeit dafür hatte, dauerte es etwas, bis ich mich des Problems näher widmen konnte.

Ich schaute mir den Quellcode einer entsprechenden Seite an, und verglich sie mit der Source, wie sie mein Browser anzeigte.
Ziemlich schnell fand ich heraus, dass es an den Server Side Includes liegen musste, die ich in vielen Seiten benutzte. Die Seiten ohne SSI waren dagegen in Ordnung.

Leider entdeckte ich auch, dass einige wesentliche Funktionalität der Seiten auf der Strecke geblieben war, und einige Links daneben gingen. Es war also doch dringend, das Problem zu lösen.
Durch genaueren Vergleich und (teils erfolglosem) Ausprobieren kam ich darauf, dass es an der #if-Direktive liegen musste.
Also warf ich Google an, und entdeckte, dass die Syntax der #if-Anweisung in einer neuen SSI-Version des Apache-Servers geändert worden war.

Ich hatte wenig Lust, all meine Dateien durchzusuchen und ggf. zu ändern, und schaute mich noch weiter bei Google um, wo ich schließlich die Lösung fand:
In der .htaccess-Datei fügte ich die Zeile „SSILegacyExprParser on“ hinzu. Dann funktionierte alles wieder wie gehabt auf der Website.

Auf meinem privaten Testsystem kam danach aber nur noch ein Internal Server Error, und ich musste in der .htaccess erst noch abfragen, ob das mod_version.c Module geladen ist (eigentlich wollte ich die Version selbst abfragen, aber selbst das unterstützte mein Testsystem nicht) – zumindest ist das ein funktionierender Workaround.

Über Anne Nühm (breakpoint)

Die Programmierschlampe.
Dieser Beitrag wurde unter Uncategorized abgelegt und mit , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

15 Antworten zu Dreizehnhunderteinundvierzig

  1. Leser schreibt:

    Für jemanden, der seine Dienste als Softwareentwickler anbietet, ist so ein Schönheitsfehler – auch, wenn es nur ein solcher gewesen wäre – durchaus höchst peinlich und könnte sogar manche Kunden abschrecken, wegen der Unprofessionalität, die so eine Fehlermeldung auf der Seite dann rüberbringt. Erst recht auch noch, wenn es Wochen- oder Monatelang so bleibt (und nicht mal nur ein Schönheitsfehler ist, sondern tatsächlich die Funktion einschränkt).
    Wenn die Seite auf einem Apache Webserver läuft, dann handelt es sich dabei zu großer Wahrscheinlichkeit um einen Linux Server? (Weil, unter Windows würde man ja den IIS nutzen, sonst bräuchte man ja keinen Windows Server) Und Du hast Dir ein Testsystem aufgesetzt? Als virtuelle Linux-Maschine? Heißt das, Du spielst tatsächlich manchmal mit vernünftigen Betriebssystemen herum, und nicht immer nur mit Windosen? Respekt!! ;-))

    Like

    • Ja, stimmt schon, dass so ein Schönheitsfehler einen schlechten Eindruck erzeugt.
      Aber ich musste damals Prioritäten setzen, und hatte dringenderes zu tun, als an meiner Website herumzubasteln.
      Dass es Funktionalitätseinschränkungen gab, hatte ich nicht bemerkt, sonst hätte ich dem schon eine größere Dringlichkeit eingeräumt.

      Mein Hoster nutzt ein Linux-System.
      Ich habe auf einer Windows-VM ein Testsystem mit Apache und PHP laufen. Dazu brauche ich kein Linux.

      Like

  2. Plietsche Jung schreibt:

    Wer SSILegacyExprParser nicht kennt, hat die Welt verpennt 🙂
    … oder sucht sich einen Ast…

    Like

  3. ednong schreibt:

    Wofür benötigt man denn heute noch SSI?

    Like

  4. Pingback: Twitter immer wieder //1528 | breakpoint

Hinterlasse einen Kommentar