在一家托管公司,他们曾经使用 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