0

私は fastcgi 開発を始めようとしています。そのため、 のリファレンス実装をダウンロードしlibfcgi、テストプログラムを実行しようとしましたlighttpd。下位互換性が確保されているので、そこから始めることにしましfcgi_stdioた。しかし、私はで動作させることcgiができませんでし. ただし、デフォルトで提供されている例が機能しない理由はまったくわかりません。examples/tiny-fcgi.clighttpdinternal server errror 500lighttpdC/C++ FastCGI on lightty named socket

質問:

  1. リファレンス実装の examples/tiny-fcgi.c の例で、lighttpd がエラー 500 を返す原因はどこにあるのでしょうか?
  2. C++ 開発 (fcgi_stdio、fcgiapp、その他) に適した fastcgi の実装はどれですか? (fcgiパックにはストリーム用のものがありますが、適切なドキュメントを見つけることができませんでした)
4

3 に答える 3

1

変更されていない例(Ubuntu/13.10/amd-64、Apache/2.4.6、libapache2-mod-fastcgi/2.4.7~0910052141-1.1、libfcgi-dev/2.4.0-8.1ubuntu4) をテストしましたが、問題なく動作します。 :

manuelz@garibaldi:~$ curl habrich/tiny-fcgi
<title>FastCGI Hello! (C, fcgi_stdio library)</title>
<h1>FastCGI Hello! (C, fcgi_stdio library)</h1>
Request number 2 running on host <i>habrich</i>

答え:

  1. あなたの設定を知らずに伝えるのは難しいですが、ここに暗闇の中でのショットがあります:はundefinedの場合getenvに返されます。NULLSERVER_NAME
  2. fcgiappは基本実装です。これを新しい開発に使用します。fcgi_stdioCGI との互換性のためのラッパーです。レガシー CGI プロジェクトの移行に使用します。見積もり:

    fcgi_stdio は、fcgiapp の上に薄いレイヤーとして実装されます。

fcgiapp.hヘッダーfcgiappで 適切なドキュメントを見つけることができます。

于 2013-11-26T15:41:38.300 に答える
1

あなたの問題が私のものと同じ起源を持っているかどうかはわかりませんが、少なくとも同じ症状があります.

tiny-fcgi の例にはさまざまなバージョンがあります。ここで与えられたものを最初に試しました(例1)。これは内部サーバー エラーで失敗しました。ただし、ここに示す例(基本的に同じことを行います) は機能します。小さいながらも重要な違いは、作業コードが使用することです

getenv("SERVER_NAME")

それ以外の

getenv("SERVER_HOSTNAME")
于 2014-02-06T22:52:18.663 に答える