SSI incluye no trabajar en Debian con Apache

12

Estoy tratando de hacer que SSI funcione en Debian ejecutando Apache, sin embargo, los .shtmlarchivos no se están analizando. Desde un archivo PHP con phpinfo()puedo ver que lo siguiente aparece en la sección de módulos cargados:

mod_mime_xattr mod_mime mod_mime_magic

En /etc/apache2/mods-enabled/mime.conftengo (entre otras cosas):

AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

En /etc/apache2/sites-enabled/domain.com.conf(para el host virtual en cuestión) tengo:

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

y por si acaso, agregué lo siguiente también:

<Directory />
Options +Includes
</directory>

En el .htaccessarchivo del usuario , intenté agregar:

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

Nada parece funcionar. ¿Cómo puedo depurar esto?

Editar:

Aquí está la salida de ls /etc/apache2/mods-enabled/en caso de que esto ayude

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
Miguel
fuente
Cuando visita una .shtmlpágina, ¿ve algo en el registro de errores de Apache?
Zoredache
Actualmente, si. En error.log[error] an unknown filter was not added: includes
Mike
Al comentar la línea AddOutputFilter INCLUDES .shtmlse elimina el error, pero aún no resuelve el problema
Mike
OK, lo descubrí. Publicaré mi respuesta en caso de que otros tengan los mismos problemas.
Mike

Respuestas:

12

Para que las funciones del lado del servidor funcionen, el includemódulo también debe cargarse. Puede hacer esto ejecutando lo siguiente como root:

a2enmod include

O ejecute lo siguiente:

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

Luego reinicie apache.

Tenga en cuenta que si agrega SSI a los .shtmlarchivos .htaccess, lo haría AddOutputFilter INCLUDES .shtml. O sustituya .shtmlel tipo de archivo que desee que el lado del servidor analice.

El archivo de configuración actual de Debian /etc/apache2/mods-available/mime.confcontiene un error en el sentido de que agrega lo siguiente:

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

sin verificar primero si mod_include.cse ha cargado. Para evitar esto, puede cambiar esas líneas a:

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

Las <IfModule>etiquetas pueden estar anidadas. Esto eliminará los mensajes de error que está experimentando en el caso de que mod_include.cno se cargue.

Miguel
fuente