2016-05-20 12 views
1

私たちは、私たちが取り組んでいるプロジェクトのためのPHPインタープリタを書くことを考えてきました。私は、PHPインタープリタがhttpサーバとどのようにインターフェースするかを調べるために、成功していませんでした。だから、私はあなたに来ています、あなたの知識豊かなStack Overflowの人々。PHPインタプリタはどのようにApacheと対話しますか?

私はphpがlocalhost:9000でリッスンしていると読んでいます。私はそれに接続しようとしていると言うことなく、それは役に立たなかった。多分Webサーバが "php file.php"を実行し、出力を取得するでしょうか?

また、.ppファイルを解釈するPHPインタープリタと、.pqpファイルを解釈するインタープリタ(引数としてpqpと呼ぶこともできます)が1つのWebサーバーに共存できますか?

ありがとうございました!

答えて

1

PHPがウェブサーバとやりとりする方法はいくつかあります。 1つは確かにPHPファイルをPHP cliにパイプしてthis questionのように出力を提供することです。私がそこに書きましたように、それは本当にお勧めしません。

次善策は、PHPのsapiを展開して、Webサーバーに一連のコネクタを提供することです。この場合、PHPはWebサーバーモジュールのように動作します(apache + mod_phpを参照)。これの欠点は、PHPが手に入るすべてのものを解析しようとしていることです。

Webサーバーに依存しない方法は、Common Gateway Interfaceを介してPHPに接続することです。これは、さまざまな対話型サーバーサイドコンポーネントのための明確なインターフェイスです。しかし、それはひどく遅いです(そして少し不安です)。

最後のステップは、FastCGIを実装することです。これは、実行中のプロセスに接続しようとする点でCGIよりも優れています。 PHPの世界では、これはphp-fpmによって実現されています(デフォルトでは9000/tcpを実際に待ち受けています)。

関連する問題