Lighttpd+Python-эквивалент Apache+PHP+FastCGI+suEXEC (или: lighttpd FastCGI-выполняющие сценарии Python с разрешения владельца)
Прошло много лет с тех пор, как я в последний раз имел какое-то отношение к веб-серверам. В последний раз я обнаружил, что Apache вместе с FastCGI (фактически mod_fcgid) и suEXEC дали мне, казалось бы, идеальный способ работы с PHP; каждый скрипт будет запускаться с привилегиями своего владельца благодаря suEXEC, а FastCGI сделает так, чтобы PHP не нуждался в порождении каждый раз, когда поступал запрос. Абсолютно изумительно!
Сейчас я настраиваю маленький VPS просто для удовольствия. Из-за ограничений памяти (и желания учиться чему-то новому) Apache был заменен на lighttpd. Более того, в последний раз я поклялся никогда больше не трогать PHP. Поэтому на этот раз я буду использовать Python (и, возможно, Haskell) для своих динамических нужд. Я немного поиграл с lighttpd+FastCGI+Python, но не понимаю, как мне это связать с чем-то эквивалентным suEXEC.
Итак, на вопрос: может ли кто-нибудь дать мне несколько советов о том, как мне настроить lighttpd с FastCGI таким образом, чтобы каждый запрашиваемый скрипт Python выполнялся (через FastCGI) с привилегиями пользователя, владеющего указанным скриптом?
1 ответ
В Apache вы можете определять шаблоны (аналогично mod_cgi), которые обозначают запросы, отправляемые в приложения FastCGI. Mod_fcgid - это менеджер процессов FastCGI, порождающий каждое уникальное приложение с определенными разрешениями (suexec).
Это невозможно с lighttpd. Lighttpd не имеет встроенного диспетчера процессов FastCGI, который может изменять разрешения (что и делает mod_fcgid).
Наиболее близким к lighttpd является spawn-fcgi, который по совпадению происходит из проекта lighttpd. Взгляните на вики Lighttpd ModFastCGI в разделе Внешний спавнинг.