SSI beinhaltet, dass mit Apache nicht an Debian gearbeitet wird

11

Ich versuche, SSI dazu zu bringen, unter Debian mit Apache zu arbeiten, aber die .shtmlDateien werden nicht analysiert. Aus einer PHP-Datei mit phpinfo()kann ich sehen, dass im Abschnitt geladene Module Folgendes angezeigt wird:

mod_mime_xattr mod_mime mod_mime_magic

In habe /etc/apache2/mods-enabled/mime.confich (unter anderem):

AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

In /etc/apache2/sites-enabled/domain.com.conf(für den fraglichen virtuellen Host) habe ich:

<Directory /home/username/public_html>
Options +Includes
allow from all
AllowOverride All 
</Directory>

und zum guten Teil habe ich auch folgendes hinzugefügt:

<Directory />
Options +Includes
</directory>

In der Benutzerdatei habe .htaccessich versucht hinzuzufügen:

Options +Includes
AddType text/html shtml
AddHandler server-parsed shtml

Nichts scheint zu funktionieren. Wie kann ich das überhaupt debuggen?

Bearbeiten:

Hier ist die Ausgabe von ls /etc/apache2/mods-enabled/für den Fall, dass dies hilft

actions.conf          dav_svn.load         proxy_balancer.load
actions.load          deflate.conf         proxy.conf
alias.conf            deflate.load         proxy_connect.load
alias.load            dir.conf             proxy_http.load
auth_basic.load       dir.load             proxy.load
auth_digest.load      env.load             python.load
authn_file.load       fcgid.conf           reqtimeout.conf
authz_default.load    fcgid.load           reqtimeout.load
authz_groupfile.load  mime.conf            rewrite.load
authz_host.load       mime.load            ruby.load
authz_user.load       mime_magic.conf      setenvif.conf
autoindex.conf        mime_magic.load      setenvif.load
autoindex.load        mime-xattr.load      ssl.conf
cgi.load              negotiation.conf     ssl.load
dav_fs.conf           negotiation.load     status.conf
dav_fs.load           php5.conf            status.load
dav.load              php5.load            suexec.load
dav_svn.conf          proxy_balancer.conf
Mike
quelle
Wenn Sie eine .shtmlSeite besuchen, sehen Sie etwas im Apache-Fehlerprotokoll?
Zoredache
Eigentlich ja. In error.log[error] an unknown filter was not added: includes
Mike
Das Auskommentieren der Zeile AddOutputFilter INCLUDES .shtmlbeseitigt den Fehler, löst das Problem jedoch immer noch nicht
Mike
OK, ich habe es herausgefunden. Ich werde meine Antwort posten, falls andere die gleichen Probleme haben.
Mike

Antworten:

11

Damit serverseitige Includes funktionieren, muss das includeModul auch geladen werden. Sie können dies tun, indem Sie Folgendes als root ausführen:

a2enmod include

Oder führen Sie Folgendes aus:

ln -s /etc/apache2/mods-available/include.conf /etc/apache2/mods-enabled/include.conf
ln -s /etc/apache2/mods-available/include.load /etc/apache2/mods-enabled/include.load

Starten Sie dann Apache neu.

Beachten Sie, dass Sie dies tun würden , wenn Sie SSI zu .shtmlDateien von hinzufügen .htaccesswürden AddOutputFilter INCLUDES .shtml. Oder ersetzen .shtmlSie den Dateityp, den Sie vom Server analysieren möchten.

Die aktuelle Debian-Konfigurationsdatei /etc/apache2/mods-available/mime.confenthält einen Fehler, indem sie Folgendes hinzufügt:

<IfModule mod_mime.c>
[...]
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
[...]
</IfModule>

ohne vorher zu prüfen, ob mod_include.cgeladen wurde. Um dies zu umgehen, können Sie diese Zeilen ändern in:

<IfModule mod_mime.c>
[...]
<IfModule mod_include.c>
    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml
</IfModule>
[...]
</IfModule>

Die <IfModule>Tags können verschachtelt werden. Dadurch werden die Fehlermeldungen entfernt, die bei einem mod_include.cnicht geladenen Ereignis auftreten .

Mike
quelle