Запуск C как FastCGI в Lighttpd

#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