让 SSI 的 `exec` 与 apache 一起工作

让 SSI 的 `exec` 与 apache 一起工作

所以我有一个 apache-2.4.25(在 Debian/stretch 中打包),并且想使用 SSI 的exec方法。

<!--#exec cmd="ls" -->

不幸的是,这给了我一个错误:

[an error occurred while processing this directive]

在日志文件中显示

unknown directive "exec" in parsed doc /path/to/some/user/public_html/ssitest/index.shtml

我发现Options +IncludesNOEXEC我的系统已启用该选项userdir.conf(这会禁用execSSI 指令)。因此,我尝试针对单个特定 VHost 关闭该选项,方法是将以下内容放入以下VirtualHost部分:

Options -IncludesNOEXEC
Options +Includes

不幸的是,这并没有帮助。

因此我尝试使用该Directory部分,但仍然没有运气:

Alias /ssitest/ /path/to/some/user/public_html/ssitest/
Options -IncludesNOEXEC
Options +Includes
<Directory /path/to/some/user/public_html/ssitest/>
  Options -IncludesNOEXEC
  Options +Includes
</Directory>

每当我尝试访问我的页面时,我都会得到在执行此命令时出现的错误错误。

那么有没有办法禁用之前设置的选项?

答案1

您需要启用 mod_cgi。我现在检查 ssi exec 在 Ubuntu 16.04+apache2 上运行的情况 - 如果您启用 mod_include 和 mod_cgi,并放入Options +Includeshtaccess 或 中,它就会起作用<Directory... >

Options -IncludesNOEXEC对我来说没有必要。

答案2

对于 ubuntu,apache2 web 服务器启用该 mod,使用以下命令

a2dismod cgi

cd /etc/apache2/sites-available
vim 000-default.conf

添加以下内容:

<Directory /var/www/vhosts/YOUR-DOMAIN.COM/httpdocs>
    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml
    Options +Includes
</Directory>

相关内容