apache2.4 fcgi 最小配置

LoadModule fcgid_module modules/mod_fcgid.so
<IfModule fcgid_module>

    AddHandler fcgid-script .exe .cgi

</IfModule>

<Directory "${SRVROOT}/cgi-bin">
    Require all granted
</Directory>

#ScriptAlias / "${SRVROOT}/cgi-bin/"
ScriptAlias /bin/ "${SRVROOT}/cgi-bin/"
ScriptAlias /echo "${SRVROOT}/cgi-bin/echo-cpp.exe"

1、LoadModule fcgid_module modules/mod_fcgid.so载入模块,注意把默认的cgi模块注释掉。

2、对已.exe.cgi结尾的项目使用fcgi处理。注意必须是可执行文件。类似Linux下程序,后缀名只是一个标识,可以将abc.exe改为abc.cgi
对于没有定义处理程序的文件,apache直接读取其内容,并返回。

3、可以将某个目录映射到"${SRVROOT}/cgi-bin/"目录,如代码中的/bin/。这样可以访问cgi-bin目录下的所有文件。其中已.exe.cgi结尾的文件会被执行后返回结果。

4、Directory访问权限递归到子文件。如果有"${SRVROOT}/cgi-bin/subdir/test"这个文件,在url中可以通过/bin/subdir/test访问到。

5、如果配置了ScriptAlias / "${SRVROOT}/cgi-bin/"那么下面两个ScriptAlias 将会被影响,进而成为无效配置。
这时,/bin/test会被解释为"${SRVROOT}/cgi-bin/bin/test"/echo会被解释为"${SRVROOT}/cgi-bin/echo" 但这两个文件都不存在。

原文地址:https://www.cnblogs.com/kohlrabi/p/9206839.html