SSI inclut ne pas travailler sur Debian avec Apache

12

J'essaie de faire fonctionner SSI sur Debian exécutant Apache, mais les .shtmlfichiers ne sont pas analysés. À partir d'un fichier PHP avec phpinfo()je peux voir que les éléments suivants apparaissent dans la section des modules chargés:

mod_mime_xattr mod_mime mod_mime_magic

Dans /etc/apache2/mods-enabled/mime.confj'ai (entre autres):

AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

Dans /etc/apache2/sites-enabled/domain.com.conf(pour l'hôte virtuel en question) j'ai:

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

et pour faire bonne mesure, j'ai également ajouté ce qui suit:

<Directory />
Options +Includes
</directory>

Dans le .htaccessfichier de l'utilisateur , j'ai essayé d'ajouter:

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

Rien ne semble fonctionner. Comment puis-je même déboguer cela?

Éditer:

Voici la sortie de ls /etc/apache2/mods-enabled/si cela aide

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
la source
Lorsque vous visitez une .shtmlpage, voyez-vous quelque chose dans le journal des erreurs Apache?
Zoredache
En fait, oui. Dans error.log[error] an unknown filter was not added: includes
Mike
Commenter la ligne AddOutputFilter INCLUDES .shtmlsupprime l'erreur, mais ne résout toujours pas le problème
Mike
OK, je l'ai compris. Je posterai ma réponse au cas où d'autres auraient les mêmes problèmes.
Mike

Réponses:

12

Pour que les inclusions côté serveur fonctionnent, le includemodule doit également être chargé. Vous pouvez le faire en exécutant ce qui suit en tant que root:

a2enmod include

Ou exécutez ce qui suit:

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

Redémarrez ensuite apache.

Notez que si vous ajoutiez SSI aux .shtmlfichiers, .htaccessvous le feriez AddOutputFilter INCLUDES .shtml. Ou remplacez .shtmlle type de fichier que vous souhaitez analyser par les inclusions côté serveur.

Le fichier de configuration Debian actuel /etc/apache2/mods-available/mime.confcontient une erreur en ce qu'il ajoute ce qui suit:

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

sans d'abord vérifier s'il mod_include.ca été chargé. Pour contourner ce problème, vous pouvez modifier ces lignes en:

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

Les <IfModule>balises peuvent être imbriquées. Cela supprimera les messages d'erreur que vous rencontrez si l'événement mod_include.cn'est pas chargé.

Mike
la source