繁体   English   中英

Perl-Starman(PSGI)+ PHP = Apache2代理设置? - 怎么做?

[英]Perl-Starman (PSGI) + PHP = Apache2 proxy setup? - How to do?

如何一起运行:PSGI和PHP?

我有Perl / PSGI应用程序(在纯perl Starman服务器下运行)。 现在,出于某种原因需要运行一个PHP应用程序;(,所以(可能)需要Apache2。问题:

  • 真的需要Apache for PHP吗? 或存在一些其他解决方案?
  • 如何设置反向代理,所以当有人去http:// mysite / myapp / something时,会代理到我的PSGI“myapp”生活的Starman?
  • http:// mysite / phpapp / anything - 将转到php应用程序...
  • 我可以将Starman服务器设置为侦听另一个端口,例如8080,但是想要在端口访问两个应用程序:80 - 所以需要反向代理。

加:

服务器在我的家庭NAT路由器后面。 内部服务器的地址为:192.168.1.10,来自外部,ofc,路由器有正确的互联网地址。 我已经重定向了所有流量

routerIP:80 -> 192.168.1.10:80
  • 实现两种应用程序访问的最佳方式是什么:端口的PSGI + PHP(互联网+“内部网”):80?
  • 需要设置一些虚拟主机? 或存在一些非常简单的解决方案
  • 一些指向有用指南的链接也有很多帮助。

Ps:我不需要优化性能,服务器仅用于家庭/演示/测试目的。

编辑:现在,在另一个类似的情况下,我再次检查CPAN,并根据@ rawhide的答案,我找到了Plack :: App :: PHPCGI模块。 效果很好 - 在plackup下测试php应用真的很酷 ......;)

您可以使用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

最简单的方法是在端口80上运行Apache2和PHP,并将mod_proxy安装到Apache进程并反向代理后端Starman的一些路径。 您也可以使用php-fpm作为FastCGI运行php,并执行相同的操作。

因为它是一个演示目的,你可以疯狂地在端口80上运行Starman,然后使用Plack :: App :: FCGIDispatcher来“安装”FastCGI PHP进程。 我尝试了一次 - 它运行良好,但可能仅用于演示目的,而不是用于生产用途。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM