6

重複の可能性:
まったく理解できませんでした: CGI とは何ですか?

lighttpd 構成では、2 つのパス (以下に示す) を定義します。1 つは PHP のバイナリーで、もう 1 つはソケット パスです。私の質問は、lighttpd が PHP によって作成された最終的な HTML 出力を取得するのはどの時点でしょうか? バイナリは応答として lighttpd に出力を返しますか? または、別の場所に一時ファイルを作成し、サーバーがそれを取得しますか?

fastcgi.server = ( ".php" => ((
                     "bin-path" => "/usr/bin/php-cgi",
                     "socket" => "/tmp/php.socket"
                 )))
4

2 に答える 2

1

PHP は、CGI バイナリまたは Apache モジュールとして実行できます。CGI バイナリとして使用される場合、HTTP サーバーはパイプまたは名前付きパイプを介して PHP と通信します。これらは、ディスクアクセスを必要としないプロセス間通信の形式であるstdoutを利用できます。Apache モジュールとして実行すると、PHP は実質的に Apache サーバーの一部になります。これは、CGI として実行するよりもはるかに高速ですが、セキュリティ上の制限がいくつかあります。

于 2012-12-28T01:22:39.283 に答える
1

私の理解では、bin-pathは FastCGI サーバーを起動するために使用され (まだ開始されていない場合)、 は開始socketされたサーバーにリクエストをプロキシするために使用されます。

したがって、最終的な HTML は/tmp/php.socket、リクエストが処理された後に取得されます。これはネットワーク ソケットとは対照的な名前付きパイプですが、他の点では非常に似ています。

于 2012-12-27T22:42:57.567 に答える