Apache不处理基本的SSI

时间:2013-10-05 17:18:59

标签: apache ubuntu ssi

Web服务器是在Ubuntu 12.04 LTS上运行的Apache 2.2.22。

这是我的http.conf文件:

DirectoryIndex index.shtml index.html index.cgi index.pl index.php index.xhtml

LoadModule cgi_module /usr/lib/apache2/modules/mod_cgi.so
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
AddHandler cgi-script .cgi .pl

LoadModule include_module /usr/lib/apache2/modules/mod_include.so
<Directory "/var/www">
  Options +Includes
  AddHandler server-parsed .shtml
  AddType text/html .shtml
  AddOutputFilter INCLUDES .shtml
  XBitHack on
</Directory>

根据这个http://httpd.apache.org/docs/current/mod/mod_include.html我需要AddType条目(得到它),AddOutputFilter条目(得到它)和Options + Includes条目(得到它)。它说我需要把它放在一个部分(得到它)。

根据这个http://httpd.apache.org/docs/current/howto/ssi.html我需要选项+包含(得到它),AddType(得到它)AddOutputFilter(得到它),XBitHack On可能有帮助。

这是/var/www/index.shtml文件:

<html>
<body>
<p>The current date is <!--#echo var="DATE_LOCAL" --></p>
</body>
</html>

该文件的权限设置为-rwxr-xr-x。

当我在Web浏览器中加载文件时,它会加载并呈现正常但SSI部分不会被处理。我只看到“目前的日期是”。

这是/var/log/apache2/access.log中的条目:

10.0.2.2 - - [05/Oct/2013:16:57:07 +0000] "GET /index.shtml HTTP/1.1" 200 401 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.66 Safari/537.36"

以下是来自/var/log/apache2/error.log的错误:

[Sat Oct 05 16:57:07 2013] [warn] [client 10.0.2.2] mod_include: Options +Includes (or IncludesNoExec) wasn't set, INCLUDES filter removed

未设置选项+包含?我在http.conf文件中看到它。我用Google搜索但无法弄清问题是什么。

2 个答案:

答案 0 :(得分:5)

解决方案是将this web page开头显示的指令放在目录部分,但不要将它们放在 http.conf 文件中。相反,它们属于 sites-available / default 文件。

这足以让它发挥作用:

<Directory "/var/www">
    # ... other stuff appears here
    # add the three lines below:
    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml
    Options +Includes
</Directory>

答案 1 :(得分:0)

快速添加:对于MACOS Mojave,请将这些指令放入⁨

Macintosh HD⁩ ▸ ⁨private⁩ ▸ ⁨etc⁩ ▸ ⁨apache2⁩ ▸ ⁨users⁩▸ {username}.conf