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.