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" 但这两个文件都不存在。