如何部署使用virtualenvwrapper创建的python / django?

时间:2016-06-14 02:18:48

标签: python django apache mod-wsgi vps

我已经了解了在我的开发系统中使用virtualenvwrapper和virtualenv的重要性和价值。我有一个用于开发的Ubuntu 16桌面。哦,顺便说一下,我不想使用像Heroku这样的PaaS,因为我已经支付了VPS托管费用。

使用virtualenvwrapper我只需使用命令workon 它激活了myproject的环境(我的项目是某个项目)。我的部署环境是具有root shell访问权限的VPS服务器。我在这上面运行了一些带有apache的PHP应用程序,所以我安装了mod_wsgi 我已阅读其他帖子但不确定virtualenv在制作中的用途。我的意思是我从shell会话中激活环境。

我不知道是否

  1. 如果我关闭我的shell,环境会保持激活吗?
  2. 如果是这样,我可以在同一个vps服务器上,甚至在同一个域上有多个激活的环境(我在生产服务器上放置了多个域)。
  3. 我知道的另一个选项是运行以&结尾的activate命令。将它发送到后台。这有点像黑客,正如我的网络托管服务提供商指出的那样。它是有道理的,因为如果系统重新启动,我必须进入并重新激活python virtualenvs。
  4. 我已经学习了关于python web应用程序的课程,但他们似乎忽略了转向生产的这些细节。或者他们建议使用PaaS类型的解决方案,例如Heroku。我已经为VPS托管付费了,我知道这可以做到。 谢谢, 布鲁斯

1 个答案:

答案 0 :(得分:3)

读:

从您的shell访问,在激活的Python虚拟环境中,运行Python解释器并输入:

import sys
print(sys.prefix)

它输出的路径是您应该提供给您的守护进程组使用的python-home指令的WSGIDaemonProcess选项。

如果您没有使用守护程序进程组,尤其是因为您使用的是PHP,那么请开始使用它们。还要确保您关闭嵌入式模式的Python解释器初始化。上面的三个帖子涵盖了所有这些细节。