SSI include non funzionare su Debian con Apache


12

Sto cercando di far funzionare SSI su Debian con Apache, ma i .shtmlfile non vengono analizzati. Da un file PHP con phpinfo()posso vedere che nella sezione dei moduli caricati appare quanto segue:

mod_mime_xattr mod_mime mod_mime_magic

In /etc/apache2/mods-enabled/mime.confho (tra le altre cose):

AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

In /etc/apache2/sites-enabled/domain.com.conf(per l'host virtuale in questione) ho:

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

e per buona misura, ho aggiunto anche quanto segue:

<Directory />
Options +Includes
</directory>

Nel .htaccessfile dell'utente , ho provato ad aggiungere:

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

Niente sembra funzionare. Come posso persino eseguire il debug di questo?

Modificare:

Ecco l'output di ls /etc/apache2/mods-enabled/nel caso in cui ciò aiuti

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

Quando visiti una .shtmlpagina vedi qualcosa nel registro errori di Apache?
Zoredache,

Attualmente si. In error.log[error] an unknown filter was not added: includes
Mike

Commentando la riga AddOutputFilter INCLUDES .shtmlsi elimina l'errore, ma non si risolve ancora il problema
Mike

OK l'ho capito. Invierò la mia risposta nel caso in cui altri abbiano gli stessi problemi.
Mike,

Risposte:


12

Per far funzionare il lato server, includeè necessario caricare anche il modulo. Puoi farlo eseguendo quanto segue come root:

a2enmod include

O eseguire quanto segue:

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

Quindi riavviare apache.

Nota, se aggiungessi SSI ai .shtmlfile da .htaccesste lo faresti AddOutputFilter INCLUDES .shtml. O sostituire .shtmlqualsiasi tipo di file che si desidera analizzare dal lato server include.

L'attuale file di configurazione Debian /etc/apache2/mods-available/mime.confcontiene un errore in quanto aggiunge quanto segue:

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

senza prima verificare se mod_include.cè stato caricato. Per ovviare a questo, puoi cambiare quelle righe in:

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

I <IfModule>tag possono essere nidificati. Questo eliminerà i messaggi di errore che si verificano nell'evento mod_include.cnon caricato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.