piet: Apache2 SSI

Hallo,

ich habe einen aktuellen Apache2 mit https (früher nur http) auf einen Rechner installiert, welcher Webseiten mit SSI-Befehlen hat, ohne .shtml Kennung. Normale cgi-Scripte in Perl funktionieren, nur Scripte von den SSI Anweisungen nicht.

<!--exec cgi=.....

Laut Internet bräuchte ich eigentlich nur "Options +Includes" angeben.

<Directory "/srv/www/htdocs">
..
..
	Options +Includes
</Directory>

Das bring aber keinen Erfolg ...

Bin für jeden Tip dankbar !!

Gruß piet

  1. Siehe:

    https://httpd.apache.org/docs/2.4/howto/ssi.html

    Es fehlt (wohl) eine Angabe dazu, für welche Requests SSI angewendet werden soll. Obige Seite zeigt:

    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml
    

    Du schreibst nun:

    Ich habe einen aktuellen Apache2 mit https (früher nur http) auf einen Rechner installiert, welcher Webseiten mit SSI-Befehlen hat, ohne .shtml Kennung.

    Hm. Dann wäre das wohl etwa in

    AddType text/html .shtml .html .htm
    # ...
    AddOutputFilter INCLUDES .shtml .html .htm
    

    umzuformulieren (Prüfe, was davon Du willst und brauchst)

    Insbesondere solltest Du zu AddOutputFilter, SetOutputFilter und RemoveOutputFilter nachlesen.

    • Schaue auch nach, ob Du in der vorherigen Konfiguration den „xBitHack“ verwendet hast.

    Sicherheitshinweis:

    RemoveOutputFilter ist anzuwenden auf alle Unterordner, in denen sich Dateien finden, die irgendwie erzeugt oder z.B. durch Nutzer hochgeladen werden (Ja: auch und wenn Du da womöglich nur Grafiken oder derlei erwartest)

    Tipp: Schaue Dir die Konfiguration für den virtuellen HTTP-HOST an (als Link zu einer Datei im Ordner /etc/apache2/sites-available/ oft unter /etc/apache2/sites-enabled/ zu finden (ich habe Deine Konfiguration nicht gesehen und weiß quasi nichts über Dein System - es kann also (besonders bei SuSE, RedHat und dessen Derivaten) ganz anders sein) und übernehme die relevanten Teile in die Konfigurationsdatei des virtuellen HTTPS-Hosts (oft: ebenda)

    Noch ein Tipp: Es ist eine gute Idee neben der genauen Version des Apache (oder anderer Software) auch die des Betriebssystems anzugeben. Das ermöglicht maßgeschneiderte Antworten. Vorliegend sind die Unterschiede auf Grund unterschiedlicher Vorgehensweisen bei der Konfiguration riesig, die angegebenen Verzeichnisse entsprechen einem Standard wie er z.B. bei Debian angerwendet wird. RedHat und SuSE (und deren Derivate) weichen davon leider erheblich ab.

  2. Normale cgi-Scripte in Perl funktionieren, nur Scripte von den SSI Anweisungen nicht.

    <!--exec cgi=.....
    

    Da wäre noch der Umstand, dass Du doch ein error.log hast. Was GENAU steht da nach einem Aufruf des betroffenen Skriptes in den neu hinzu gekommenen Zeilen? Steht das <!--exec cgi= im HTML-Output? Falls Du die Dateien auf einen neuen oder neu aufgesetzten Server übertragen hast könnte es sowohl am SSI als auch an den Dateirechten liegen: z.B. müssen die Perl-Skripte auführbar sein - chmod 755 SKRIPT.pl hilft dann. Auch die Shebang kann falsch sein

    Im Übrigen: „Perl“, „SSI“ - das klingt „wenig modern“. Ich hoffe Du bist Dir sicher darin, dass das anno 2024 wirklich auf einem Webserver ausgeführt werden soll.

    1. Hallo Raketenwilli,

      vielen Dank für deine Tips.

      Im Übrigen: „Perl“, „SSI“ - das klingt „wenig modern“. Ich hoffe Du bist Dir sicher darin, dass das anno 2024 wirklich auf einem Webserver ausgeführt werden soll.

      Ein bestehendes Projekt soll einfach einen neuen Webserver inkl. https bekommen. Daher werde ich hier nur das nötigste ändern.

      Ich finde Perl noch immer gut ;-)

      Gruß Peter