web-dev-qa-db-ja.com

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

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
_
12
Mike

サーバー側インクルードを機能させるには、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を再起動します。

.shtml.htaccessファイルにSSIを追加する場合は、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がロードされていない場合に発生しているエラーメッセージが削除されます。

12
Mike