(также размещены на FastCGI ++ - пользователи почты список, однако он не был активным в значительной продолжительности времени)Какова правильная конфигурация Lighttpd для демона, реализующего библиотеку FastCGI ++?
Я в настоящее время пытается использовать FastCGI ++ (версия 2.1) библиотеки в приложении я пишу. Приложение будет запускаться как демон на машине Linux, с веб-страницей статуса, обслуживаемой через lighttpd. Я намерен периодически использовать интерфейс FastCGI ++, автоматически обновляя веб-страницу состояния.
Я начал с добавления потока к моему приложению, которое создает экземпляр FastCGI ++ Manager, и echos строковый литерал в ответ на любой запрос (по существу такой же, как пример Hello World).
Однако я не могу получить доступ к этому в браузере, и я подозреваю, что неправильно настроил модуль lighttpd fastcgi (/etc/lighttpd/lighttpd.conf, приведенный ниже). В журнале ошибок lighttpd указано, что «нет такого файла или каталога в unix: /tmp/Myapp.sock».
Каков правильный способ настройки lighttpd для взаимодействия с демоном, реализующим библиотеку fastcgi ++? Нужно ли запускать демона с помощью 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 запускает приложение, то (а) каждый запрос создаст новый экземпляр, и (б) приложение будет работать только на время запроса. Учитывая, что демон задействован в мониторинге и управлении конкретными аппаратными устройствами, мне нужно, чтобы он постоянно работал с загрузкой. –
У вас неверное впечатление. lighttpd запускает демона при запуске и отправляет ему сигнал термина при его выключении lighttpd. Независимо от того, запускает ли или нет lighttpd демона, lighttpd создает новое соединение сокетов с бэкэнд FastCGI для каждого запроса. Если демон запущен, то должен существовать файл /tmp/Myapp.sock. Имеет ли это? Если нет, выполнялось ли задание cron из/tmp из-за «старой» метки времени? Может быть, подумайте о том, чтобы положить сокет в другое место? – gstrauss