SSI termasuk tidak bekerja pada Debian dengan Apache


12

Saya mencoba agar SSI bekerja pada Debian yang menjalankan Apache, namun .shtmlfile-file tersebut tidak diuraikan. Dari file PHP dengan phpinfo()saya dapat melihat bahwa berikut ini muncul di bagian modul yang dimuat:

mod_mime_xattr mod_mime mod_mime_magic

Dalam /etc/apache2/mods-enabled/mime.confsaya miliki (antara lain):

AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

Dalam /etc/apache2/sites-enabled/domain.com.conf(untuk virtual host yang dimaksud) saya punya:

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

dan untuk ukuran yang baik, saya menambahkan yang berikut juga:

<Directory />
Options +Includes
</directory>

Di file pengguna .htaccess, saya mencoba menambahkan:

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

Sepertinya tidak ada yang berhasil. Bagaimana saya bisa men-debug ini?

Edit:

Berikut adalah output ls /etc/apache2/mods-enabled/dalam hal ini membantu

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

Ketika Anda mengunjungi .shtmlhalaman, apakah Anda melihat sesuatu di log kesalahan Apache?
Zoredache

Sebenarnya ya. In error.log[error] an unknown filter was not added: includes
Mike

Mengomentari saluran AddOutputFilter INCLUDES .shtmlmenghilangkan kesalahan, tetapi masih tidak menyelesaikan masalah
Mike

OK saya menemukan jawabannya. Saya akan memposting jawaban saya jika ada orang lain yang memiliki masalah yang sama.
Mike

Jawaban:


12

Agar sisi server termasuk berfungsi, includemodul juga perlu dimuat. Anda dapat melakukan ini dengan menjalankan yang berikut ini sebagai root:

a2enmod include

Atau jalankan yang berikut ini:

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

Kemudian restart apache.

Catatan, jika Anda menambahkan SSI ke .shtmlfile dari .htaccessAnda akan lakukan AddOutputFilter INCLUDES .shtml. Atau ganti .shtmldengan jenis file apa pun yang Anda ingin diuraikan oleh sisi server.

File konfigurasi Debian saat ini /etc/apache2/mods-available/mime.confmengandung kesalahan karena menambahkan hal-hal berikut:

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

tanpa terlebih dahulu memeriksa apakah mod_include.csudah dimuat. Untuk menyiasatinya, Anda dapat mengubah baris-baris itu menjadi:

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

The <IfModule>tag dapat bersarang. Ini akan menghilangkan pesan kesalahan yang Anda alami dalam acara yang mod_include.ctidak dimuat.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.