Назад | Перейти на главную страницу

FCGI и перекомпиляция кода Python без перезапуска apache

В одной хостинговой компании они запускали проекты Python с помощью fcgi. Они настроили его так, что, когда я изменил файл django.fcgi, который поместил django и мой проект в pythonpath, мой код проекта был мгновенно перекомпилирован.

Из-за этого друг настроил хостинг для нашего общего проекта на своем сервере с помощью fastcgi. Он был настроен, и скрипты python выполняются должным образом, но мы не знаем, как его настроить так, чтобы мой проект был перекомпилирован при изменении моего установочного файла.

Алан

Ты используешь mod_fastcgi или mod_fcgid? В любом случае, вы должны просто убить процесс fastcgi (или заставить процесс совершить «самоубийство»), и apache возродит другой, загрузив новый файл. я использую mod_fastcgi, и вот что я вижу:

0> ps -ef | grep fcgi
www-data   687   683  0 09:39 ?        00:00:00 /usr/sbin/fcgi-pm -k start
www-data  1037   687  0 09:41 ?        00:00:00 /usr/bin/python /var/www/wsgi/fcgi.py
www-data  1038  1037  0 09:41 ?        00:00:00 /usr/bin/python /var/www/wsgi/fcgi.py
www-data  1039  1037  0 09:41 ?        00:00:00 /usr/bin/python /var/www/wsgi/fcgi.py

0> sudo kill 1037

0> ps -ef | grep fcgi
www-data   687   683  0 09:39 ?        00:00:00 /usr/sbin/fcgi-pm -k start
www-data  1142   687  2 09:43 ?        00:00:00 /usr/bin/python /var/www/wsgi/fcgi.py
www-data  1143  1142  0 09:43 ?        00:00:00 /usr/bin/python /var/www/wsgi/fcgi.py
www-data  1144  1142  0 09:43 ?        00:00:00 /usr/bin/python /var/www/wsgi/fcgi.py

Если вы используете внешний сервер, вам необходимо перезапустить сервер fastcgi. Это официальная документация по перезагрузке приложения в fastcgi: http://www.fastcgi.com/docs/faq.html#application_reload