#c #fastcgi #lighttpd
#c #fastcgi #lighttpd
Вопрос:
Я пытаюсь запустить двоичные файлы C как FastCGI в Lighttpd, но он не запускается. Я пробовал что-то вроде этого:
fastcgi.server = (".cpp" =>
( "localhost" =>
(
"socket" => "/tmp/mysocket",
"bin-path" => "/var/www/index.cpp",
"max-procs" => 1
))
)
Но я не могу заставить его работать. Я хочу сохранить C в памяти для очень быстрого запуска.
Комментарии:
1. Вы не запускаете исходные файлы C . Вы запускаете скомпилированный исполняемый файл. Итак, вам нужно скомпилировать ваш файл
index.cpp
вmyapp.fcgi
двоичный файл, возможно,g -Wall -Wextra -g -O index.cpp -lfcgi -o myapp.fcgi
затем вам нужно настроитьlighttpd
его для его использованияmyapp.fcgi
Ответ №1:
Вы должны адаптировать свою конфигурацию к чему-то вроде этого:
fastcgi.server = (
"/api" => (
"api.fastcgi.handler" => (
"socket" => "/var/run/lighttpd/lighttpd-fastcgi-test-" PID ".socket",,
"check-local" => "disable",
"bin-path" => "/var/www/localhost/cgi-bin/test.fcgi",
"max-procs" => 30,
)
)
)
Для всех запросов: localhost/api/some_test lighttp вызовет ваш исполняемый файл fcgi /var/www/localhost/cgi-bin/test.fcgi
Комментарии:
1. Кроме того, исходный файл C должен быть скомпилирован в
test.fcgi
2. @BasileStarynkevitch правильно, например, в файле конфигурации для lighttp ваш исполняемый файл fastcgi должен быть назван test.fcgi и указан в пути: /var/www/localhost/cgi-bin/test.fcgi