簡體   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