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搜索但无法弄清问题是什么。
答案 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