代码之家  ›  专栏  ›  技术社区  ›  mshsayem

Django项目如何以最少的安装工作部署?

  •  3
  • mshsayem  · 技术社区  · 15 年前

    要使用Python/Django/MySQL部署站点,我必须在服务器(RedHat Linux)上执行以下操作:

    • 安装MySQLPython
    • 安装ModPython
    • 安装Django(使用 )

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

    • Django项目的部署过程是否可以简化?
    • 我做的太多了吗?
    • 在共享服务器上部署django站点的最佳方式是什么?
    7 回复  |  直到 14 年前
        1
  •  4
  •   Pierre-Jean Coudert    15 年前

    要启用easy Django部署,我将考虑以下几点:

    在您的开发环境中

    • 将虚拟环境复制到生产服务器
    • 只需在httpd.conf文件(或use.htaccess)中将Include指令添加到项目的apache配置中。如中所述 mod_wsgi integration with 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 自动化部署
        2
  •  3
  •   Community George Stocker    7 年前

    django项目的部署过程是否可以简化?

    但是,您将一直调整应用程序。

    我做的太多了吗?

    不,Python(和Django)不是Apache的一部分。PHP嵌入在Apache中。PHP与mod_python(或mod_wsgi)非常相似。就一块馅饼。(显然,有些主机为您处理PHP安装,但不处理mod_wsgi或mod_python安装。)

    可以省略一些步骤吗?

    不。但是,你只做一次。

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

    你做得对。

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

    而且,PHP不是Python。PHP是Apache的一个插件。Python“只是”一种编程语言,它需要一个单独的Apache插件(即mod_Python或mod_wsgi)。

    看见 How nicely does Python 'flow' with HTML as compared to PHP?

        3
  •  2
  •   Vinay Sajip    15 年前

    Django托管支持不如PHP广泛,但有一些不错的选择。我可以推荐 WebFaction

    免责声明:除了作为一个快乐的客户,我与他们没有其他联系。

        4
  •  1
  •   John Millikin    15 年前

    部署PHP站点时,您无需执行任何操作,因为您的托管提供商已经安装了它。支持Django的Web主机通常会为您安装和配置它。

        5
  •  1
  •   David Raznick    15 年前

    你只需安装这个已经制作好的 solution 如果允许您在虚拟机上运行映像。我可以想象,由于复杂的安全配置可以自动完成,未来的安装将以这种方式进行。

        6
  •  0
  •   Ramin    15 年前

    大多数共享托管站点都运行LAMP(Linux、Apache、MySQL、PHP)堆栈,因此部署只需复制一些文件即可。如果您使用的是诸如CakePHP之类的PHP框架,或者该服务尚未安装的东西(如图像库),那么您还需要经历额外的部署步骤。

    使用Django(或Rails,或任何其他复杂的框架),您必须自己设置堆栈一次,然后就可以开始了。

    但是,您还需要考虑部署后更新。如果这是你要经常做的事情,你可能也会想调查一下 Fabric Capistrano 帮助实现自动化。

    顺便说一句,我会支持WebParty的建议。这是我见过的最接近一键式的安装。虽然我主要用于测试站点和原型设计,但客户还是非常满意。

        7
  •  0
  •   Peter Mortensen user1284631    14 年前

    您可以使用Python virtualenv pip (另见“ Tools of the Modern Python Hacker: Virtualenv, Fabric and Pip )。我在虚拟环境中开发了Django项目。我在部署应用程序时将虚拟环境文件复制到生产机器。我使用 mod_wsgi . 你必须把它写在 mod_wsig 文件:

    import site  
    site.addsitedir('C:\PythonVirtualEnv\IntegralEnv\Lib\site-packages')