Переключение между FCGI и CGI с помощью Python и Flup

В настоящее время я перемещаю все свои скрипты Python CGI в стандарт WSGI с помощью Flup (http://trac.saddi.com/flup), я создал файл dispatch.fcgi, вызывающий и использующий Flup, как описано в документации:

from flup.server.fcgi import WSGIServer
...

и работает как шарм, проблема возникает, когда я пытаюсь переключиться на CGI для отладки чего-либо в режиме без кэширования, избегая уничтожения процессов или сенсорных файлов, это должно быть так же просто, как заменить сервер Flup для импорта:

from flup.server.cgi import WSGIServer
...

но затем браузер возвращает мне ошибку 500, я проверил заголовки и html, выполняющиеся через SSH, и, похоже, все в порядке, затем я подумал, что должна быть некоторая неправильная конфигурация сервера (общий доступ Dreamhost), и я обнаружил, что сервер не может выполнять сценарии Python с помощью .fcgi, поэтому я нашел обходной путь, добавив это в файл .htaccess:

AddHandler cgi-script .fcgi

то режим CGI почти работает (wsgi.input всегда пуст, даже читая его корректно передавая длину) но кэширование FCGI вообще не работает, запуская кучу процессов. В данный момент я полностью зашел в тупик, мне просто нужен простой способ переключения с FCGI на CGI, действителен ли этот метод? или я что-то упускаю?

Большое спасибо.


person Htechno    schedule 09.12.2010    source источник


Ответы (1)


Протокол FCGI отличается от CGI. Вот почему простое изменение с FCGI на CGI не работало, а FCGI не работал при изменении обработчика файлов Apache .fcgi на обработчик CGI.

person edgars    schedule 10.12.2010
comment
Я знаю, что есть разные протоколы, но в WSGI оба должны работать одинаково, по крайней мере, я понимаю, что в этом смысл WSGI, унифицировать все протоколы под одной оболочкой. Если Flup не может работать с CGI, почему модуль CGI Flup? Есть много людей, использующих это таким образом... - person Htechno; 10.12.2010
comment
Теоретически после ваших действий скрипты должны работать в режиме CGI. Почему бы и нет, я не знаю, но я отвечаю, что нельзя просто ожидать, что все скрипты fcgi будут работать как cgi и наоборот. Не может быть простого способа переключения, по крайней мере, не того, который вы пытаетесь использовать. - person edgars; 10.12.2010