2017-01-26 11 views
0

は(またのFastCGI ++に投稿された - ユーザーはしかし、それは時間のかなりの長さで活躍していないされ、リストを郵送)私は現在、私が書いているアプリケーション内でのFastCGI ++(バージョン2.1)ライブラリを使用しようとしていますFastCGI ++ライブラリを実装するデーモンの正しいLighttpd設定は何ですか?

。アプリケーションはLinuxマシン上でデーモンとして実行され、ステータスWebページはlighttpdによって提供されます。 FastCGI ++インターフェイスを定期的に使用してステータスWebページを自動的に更新するつもりです。

私はアプリケーションにFastCGI ++ Managerのインスタンスを作成するスレッドを追加し、任意の要求(基本的にHello Worldの例と同じ)に応答して文字列リテラルをエコーし​​ます。

しかし、私はこのブラウザにアクセスできないようで、lighttpd fastcgiモジュール(以下に含まれる/etc/lighttpd/lighttpd.conf)を間違って設定した疑いがあります。 lighttpdエラーログには、「Unix上にこのようなファイルやディレクトリはありません:/tmp/Myapp.sock」と記録されています。

fastcgi ++ライブラリを実装しているデーモンとインターフェイスするためのlighttpdの正しい設定方法は何ですか? spawn-fcgiでデーモンを起動する必要がありますか?

おかげで、

マイク

猫/etc/lighttpd/lighttpd.conf:

server.modules = (
    "mod_access", 
    "mod_alias", 
    "mod_compress", 
    "mod_redirect", 
     "mod_rewrite", 
    "mod_cgi", 
    "mod_fastcgi", 
) 

server.document-root  = "/var/www/html" 
server.upload-dirs   = ("/var/cache/lighttpd/uploads") 
server.errorlog    = "/var/log/lighttpd/error.log" 
server.pid-file    = "/var/run/lighttpd.pid" 
server.username    = "www-data" 
server.groupname   = "www-data" 
server.port     = 80 

cgi.assign = (".py" => "/usr/bin/python3") 
fastcgi.debug = 1 
fastcgi.server = ("/device" => (( 
        "socket" => "/tmp/Myapp.sock", 
        "check_local" => "disable", 
        "docroot" => "/" 
       )) 
     ) 

index-file.names   = ("index.php", "index.html", "index.lighttpd.html") 
url.access-deny    = ("~", ".inc") 
static-file.exclude-extensions = (".php", ".pl", ".fcgi") 

compress.cache-dir   = "/var/cache/lighttpd/compress/" 
compress.filetype   = ("application/javascript", "text/css", "text/html", "text/plain") 

# default listening port for IPv6 falls back to the IPv4 port 
include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port 
include_shell "/usr/share/lighttpd/create-mime.assign.pl" 
include_shell "/usr/share/lighttpd/include-conf-enabled.pl" 

答えて

0

"UNIXでのそのようなファイルまたはディレクトリ:/tmp/Myapp.sock"

これは、ソケットが見つからないことを意味します。

デーモンは動作していますか?それを始めるのですか?

lighttpdがデーモンを起動するようにするには、 "/ device"のfastcgi.server設定に "bin-path"を含める必要があります。 https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModFastCGI

+0

デーモンが実行されています。 lighttpdがアプリケーションを起動すると、(a)各要求は新しいインスタンスを作成し、(b)アプリケーションは要求の期間だけ実行されるという印象を受けました。 デーモンが特定のハードウェアデバイスの監視と制御に関与していることを考えると、常にデーモンが起動している必要があります。 –

+0

あなたの印象は間違っています。 lighttpdは起動時にデーモンを起動し、lighttpdのシャットダウン時にtermシグナルを送信します。 lighttpdがデーモンを起動するかどうかにかかわらず、lighttpdは各要求に対してFastCGIバックエンドへの新しいソケット接続を作成します。デーモンが実行されている場合は、/ tmp/Myapp.sockが存在する必要があります。それは?そうでなければ、 "古い"タイムスタンプのために/ tmpからcronジョブを削除しましたか?多分ソケットを別の場所に置くことを検討していますか? – gstrauss

関連する問題