は(またの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"
デーモンが実行されています。 lighttpdがアプリケーションを起動すると、(a)各要求は新しいインスタンスを作成し、(b)アプリケーションは要求の期間だけ実行されるという印象を受けました。 デーモンが特定のハードウェアデバイスの監視と制御に関与していることを考えると、常にデーモンが起動している必要があります。 –
あなたの印象は間違っています。 lighttpdは起動時にデーモンを起動し、lighttpdのシャットダウン時にtermシグナルを送信します。 lighttpdがデーモンを起動するかどうかにかかわらず、lighttpdは各要求に対してFastCGIバックエンドへの新しいソケット接続を作成します。デーモンが実行されている場合は、/ tmp/Myapp.sockが存在する必要があります。それは?そうでなければ、 "古い"タイムスタンプのために/ tmpからcronジョブを削除しましたか?多分ソケットを別の場所に置くことを検討していますか? – gstrauss