我使用Apache来使用cgi和ssi(服务器端包含)来提供网页。我甚至在某些情况下都使用它们,也就是说,使用ssi进一步扩展cgi程序的输出以生成传递给客户端的最终html。
系统在我的商业网站主机上运行良好,并且可以在我的个人计算机上安装Apache。但我最近使用Debian Apache 2.4.7升级到Ubuntu 14.04 Trusty Tahr(64位)。 cgi和ssi都可以工作,但只能单独使用。使用ssi进一步扩展cgi输出的尝试失败,并且cgi程序的原始输出被传递给客户端。
有关将系统调整为工作的建议将不胜感激。另一个有用的答案是一个简短的工作示例,在一百行以下,在上面的Ubuntu配置中使用ssi扩展cgi输出的文档。
答案 0 :(得分:0)
值得检查的一些事情:
apache2ctl -M
,并确保已启用cgi_module
和include_module
。Options
指令下,您有ExecCGI
,Includes
和不 IncludesNOEXEC
SetHandler cgi-script
,或者使用ScriptAlias
指令。据我所知,无法在同一源文件上运行SSI和CGI。可以在运行时之前预先生成另一个(如前处理器),或者他们可以包括'在运行时彼此作为单独的文件。
包含CGI的SSI选项:
<!--#include virtual="/cgi-bin/example.cgi?argument=value" -->
<!--#exec cgi="/cgi-bin/example.cgi" -->
<!--#exec cmd="perl /path/to/perlscript arg1 arg2" -->
我希望有所帮助。
答案 1 :(得分:0)
将其添加到您的.htaccess
文件中:
<Files ~ ".ssicgi$">
Options +SymLinksIfOwnerMatch +Includes
AddOutputFilter INCLUDES .ssicgi
</Files>
将要为cgi解析的输出的cgi脚本重命名为扩展名&#34; .ssicgi
&#34;并重命名对原始脚本的任何调用,以便调用过滤后的版本。
如果能为您解决问题,请务必提出并接受答案。