如何一起运行:PSGI和PHP?
我有Perl / PSGI应用程序(在纯perl Starman服务器下运行)。现在,出于某种原因需要运行一个PHP应用程序;(,所以(可能)需要Apache2。问题:
加:
服务器在我的家庭NAT路由器后面。内部服务器的地址为:192.168.1.10,来自外部,ofc,路由器有正确的互联网地址。我已重定向所有流量
routerIP:80 -> 192.168.1.10:80
Ps:我不需要优化性能,服务器仅用于家庭/演示/测试目的。
编辑: 现在,在另一个类似的情况下,我再次检查了CPAN,根据@ rawhide的回答,我找到了Plack::App::PHPCGI模块。效果很好 - 它非常酷在plackup下测试php应用程序......;)
答案 0 :(得分:4)
您可以使用Plack::App::CGIBin
或直接使用WrapCGI将其作为CGI(fork + exec)执行
my $rawapp = Plack::App::WrapCGI->new(script => "rawhide.php" , execute => 1 )->to_app;
builder {
mount "/rawhide" => $rawapp ;
};
如果rawhide.php没有shebang,你可以使用/usr/bin/php /path/to/rawhide.php
答案 1 :(得分:2)
最简单的方法是在端口80上运行Apache2和PHP,并将mod_proxy安装到Apache进程并反向代理后端Starman的一些路径。您也可以使用php-fpm作为FastCGI运行php,并执行相同的操作。
由于它是一个演示目的,你可以疯狂地在端口80上运行Starman,然后使用Plack :: App :: FCGIDispatcher“挂载”FastCGI PHP进程。我尝试了一次 - 它运行良好,但可能仅用于演示目的,而不是用于生产用途。