SSIには、Apacheを使用したDebianでの作業が含まれていません


12

Apacheを実行しているDebianでSSIを動作させようとしてい.shtmlますが、ファイルは解析されていません。PHPファイルからphpinfo()、ロードされたモジュールセクションに以下が表示されることがわかります。

mod_mime_xattr mod_mime mod_mime_magic

/etc/apache2/mods-enabled/mime.conf、私は(特に)があります。

AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

/etc/apache2/sites-enabled/domain.com.conf(問題の仮想ホスト)私が持っています:

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

また、適切な手段として、以下も追加しました。

<Directory />
Options +Includes
</directory>

ユーザーの.htaccessファイルに、以下を追加してみました:

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

何も機能していないようです。どうすればこれをデバッグできますか?

編集:

ls /etc/apache2/mods-enabled/これが役立つ場合の出力はここにあります

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

.shtmlページにアクセスすると、Apacheエラーログに何か表示されますか?
ゾレダチェ

実はそうです。error.log- [error] an unknown filter was not added: includes
マイク

AddOutputFilter INCLUDES .shtmlをコメントアウトするとエラーは取り除かれますが、それでも問題は解決しません
Mike

わかった。他の人が同じ問題を抱えている場合に備えて、回答を投稿します。
マイク

回答:


12

サーバー側インクルードを機能させるには、includeモジュールもロードする必要があります。これを行うには、ルートとして次を実行します。

a2enmod include

または、次を実行します。

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

次に、Apacheを再起動します。

SSIを.shtmlファイルに追加する.htaccess場合は、を実行してくださいAddOutputFilter INCLUDES .shtml。または.shtml、サーバー側のインクルードによって解析するファイルの種類を置き換えます。

現在のDebian構成ファイル/etc/apache2/mods-available/mime.confには、以下を追加するというエラーが含まれています。

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

mod_include.cロードされているかどうかを最初に確認せずに。これを回避するには、これらの行を次のように変更できます。

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

<IfModule>タグはネストすることができます。これにより、mod_include.cロードされていないイベントで発生したエラーメッセージが削除されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.