如何最小化安装工作部署Django项目?

3 投票
7 回答
2186 浏览
提问于 2025-04-15 13:47

为了在服务器上用Python/Django/MySQL部署一个网站,我在RedHat Linux上需要做以下几件事:

  • 安装MySQLPython
  • 安装ModPython
  • 安装Django(使用python setup.py install命令)
  • 在httpd.conf文件中添加一些指令(或者使用.htaccess文件)

但是,当我用PHP(使用CodeIgniter框架)部署另一个网站时,我什么都不用做。在共享服务器上部署Django项目时,我遇到了一些问题。现在,我有几个问题:

  • Django项目的部署过程能不能简单一些?
  • 我是不是做得太多了?
  • 有没有步骤可以省略掉?
  • 在共享服务器上部署Django网站的最佳方法是什么?

7 个回答

2

Django的托管支持没有PHP那么普遍,但还是有一些不错的选择。我可以推荐WebFaction——他们提供一个简单易用的控制面板,可以选择不同版本的Django、Python,还有mod_python、mod_wsgi、MySQL、PostgreSQL等。价格也很实惠。如果你使用他们的服务,你可以通过SSH访问,但大部分设置都可以通过控制面板完成,除了实际上传你的项目文件夹。

免责声明:除了我是他们的满意客户外,我与他们没有其他关系。

4

为了方便Django的部署,我会做以下几步:

第一次服务器配置

  • 安装 mod_wsgi,这个工具可以让你以 嵌入式 模式或 守护进程 模式运行。
  • 安装Python和virtualenv

在你的开发环境中

  • 使用virtualenv。可以看看mod_wsgi和virtualenv的配置
  • 安装你需要的Django版本(使用python setup.py install)。
  • 安装你的Python库。
  • 开发你的项目。

每次你想要部署的时候

  • 把你的虚拟环境复制到生产服务器上。
  • 在你的httpd.conf文件中添加一个Include指令(或者使用.htaccess)来配置你项目的Apache。根据mod_wsgi与Django的集成文档,Apache的包含文件可以这样配置:

Alias /media/ /usr/local/django/mysite/media/

<Directory /usr/local/django/mysite/media>
  Order deny,allow
  Allow from all
</Directory>

WSGIScriptAlias / /usr/local/django/mysite/apache/django.wsgi

<Directory /usr/local/django/mysite/apache>
  Order deny,allow
  Allow from all
</Directory>

自动化部署

  • 我会考虑使用Fabric来自动化部署。
3

django项目的部署过程能不能简单点?

不能。如果你愿意,可以把其中一些步骤写成脚本来自动化。不过,你以后不会再重新安装MySQL、MySQLPython、mod_wsgi(或者mod_python)和Django了。

不过,你会经常调整你的应用程序。

我是不是做得太多了?

没有。Python(和Django)并不是Apache的一部分。PHP是嵌入在Apache里的。PHP就像mod_python(或者mod_wsgi)一样,只是其中的一部分。(显然,有些主机会为你处理PHP的安装,但不会处理mod_wsgi或mod_python的安装。)

有没有步骤可以省略?

没有。不过,你只需要做一次。

在共享服务器上部署django网站的最佳方法是什么?

你做得很对。

我用PHP(使用CodeIgniter)部署另一个网站时,什么都不用做

这显然是不公平的比较。显然,他们已经为你安装好了PHP和数据库。真不错。

而且,PHP和Python是不同的。PHP是Apache的一个插件,而Python只是一个编程语言,需要一个单独的插件来与Apache配合(也就是mod_python或mod_wsgi)。

查看 Python与HTML的结合程度与PHP相比如何?

撰写回答