我编写了两个 C++ fastcgi 应用程序(foo 和 foobar)。我正在运行 apache 2.2 (prefork),mod_fcgid在 Ubuntu 10.x 上。
我希望能够设置 apache 以便:
http://我的网站/some/path1?param1=value1¶m2=value2
将运行 fastcgi 应用程序 foo
和
我的网站/另一个/路径 1?param1=值 1¶m2=值 2
将运行 fastcgi 应用 foobar
注意:上面的 URL 故意无效(缺少协议类型),因为我无法在这个问题中发布超过 1 个链接。
我该如何设置 apache 来实现这一点?
答案1
最简单的方法是使用 FcgidWrapper 指令并启用“virtual”。这意味着 Apache 甚至不会尝试查找“真实”文件,而只是调用 fcgi 脚本。
DocumentRoot /whatever
<Directory /whatever/some/path1>
FcgidWrapper /elsewhere/bin/foo virtual
</Directory>
<Directory /whatever/another/path1>
FcgidWrapper /elsewhere/bin/foobar virtual
</Directory>
或者,你可以使用 mod_rewrite 这样的:
DocumentRoot /whatever
<Directory /whatever>
RewriteRule /some/path1 /fcgi/foo
RewriteRule /another/path1 /fcgi/foobar
</Directory>
<Directory /whatever/fcgi>
SetHandler fcgid-script
</Directory>