FCGI 和重新编译 Python 代码而无需重新启动 Apache

FCGI 和重新编译 Python 代码而无需重新启动 Apache

在一家托管公司,他们曾经使用 fcgi 运行 python 项目。他们已经设置好了,当我更改 django.fcgi 文件(将 django 和我的项目放在 pythonpath 上)时,我的项目代码会立即重新编译。

因此,一位朋友使用 fastcgi 在他的服务器上为我们的共享项目设置了托管。它已设置完毕,python 脚本按预期执行,但我们不知道的是,如何设置它,以便在我的设置文件更改时重新编译我的项目。

艾伦

答案1

您使用的是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

相关内容