【发布时间】:2013-04-05 17:58:12
【问题描述】:
我已经查看了关于此的其他线程,但大多数都没有深入了解我需要帮助的设置细节。
我有一个基于 Ubuntu 的 VPS,运行 nginx,通过端口 9000 上的 php-cgi 为 PHP 站点提供服务。
我想开始更多地使用 Python,所以我编写了一个部署脚本,我基本上想将它用作我本地 GitLab 服务器上的接收后挂钩,作为我的第一个 Python 脚本。我可以通过在命令行上运行python script.py 来成功运行此脚本,但为了将其用作接收后挂钩,我需要它能够通过 http 访问它。
我在 nginx wiki 上查看了 this guide,但中途说:
并启动django fastcgi进程:
python ./manage.py runfcgi host=127.0.0.1 port=8080
现在,就像我说的,我对 python 很陌生,而且我从未使用过 Django 框架。任何人都可以帮助我应该如何启动 fastcgi 服务器吗?我是否将./manage.py 替换为我的脚本名称?任何帮助都会得到帮助,因为我在网上找到的所有内容都涉及使用 Django。
【问题讨论】:
-
@Vitaliy 如果问题是如何通过 HTTP 公开此代码,那可能怎么可能相关?
-
@Vitaliy 我不明白这有什么关系?它甚至不使用数据库。
-
您应该阅读stackoverflow.com/questions/11216658/… 答案中链接到的文章; tldr- cgi 不推荐用于 Python 开发,WSGI 是现代协议。
-
@JonathanVanasco 在有 Apache/nginx 的设置中,WSGI 不是主要用作 paster 和 gunicorn 等应用服务器之间的抽象接口吗反向代理一堆工作进程?在“真正的”网络服务器中直接支持它并不是真正的事情。如果 OP 已经有一个他知道启用并配置了 FastCGI 的 nginx 服务器,那么使用它并没有什么问题。 (似乎 WSGI 模块在 nginx 中不是标准的,所以它可能在他们的构建中不可用,the documentation for it 看起来很吓人。)
-
WSGI 被用作这样的抽象接口,但它也推动了诸如 Flask、Paste、web.py 等之类的设计原则。nginx 通过 uwsgi 服务器提供 wsgi 支持。留在 CGI 中没有任何问题 - 它只是一种旧的和过时的 Web 脚本方法。如果您正在学习如何将 python 用于网络内容,那么学习当前技术比人们不真正使用的旧技术更有意义。此外,您还可以获得中间件、本地测试服务器(通过任何框架)的好处,并且不必使用 cgi 模块。
标签: python http nginx installation