2012-01-06 112 views
6

我一直在我自己的django环境中开发一段时间,现在使用manage.py runserver没有任何问题,但现在我们已经有了一个设计师和一个前端开发人员需要在项目上工作,我发现自己对于环境的最佳实践感到不知所措。如何为设计师的开发环境设置Django/Apache

我可以要求他们设置自己的python环境,但是由于他们不是Python人员,而且他们运行的是Windows(我的开发人员和生产环境都是Linux),所以这要求非常高。

因此,我已经将它们设置在远程服务器上,它们可以在本地进行安装。但是在这个设置中,我实际上使用了运行在screen实例中的manage.py runserver ip:port的不同实例。它不能处理像常量重装(非常适合我们的设计人员)这样的事情,并且由于开发服务器的单线程特性,它会不时挂起。我想知道如何使用Apache进行设置。这个问题当然是staticfiles。每当上述任何一方想要添加或更改静态文件时,他们都必须运行manage.py collectstatic,这是不实际的。我只是不知道任何其他方式来做到这一点。我发现使用Apache的所有文档都适用于生产环境,所以......这就是我来到这里的原因。

+0

如果设计者只是改变静态文件和模板,为什么是Django重新加载? – second 2012-01-06 13:09:49

+0

好问题。每当她做了'svn up',它就会发生,但那只会是一次重新加载。老实说,我不知道为什么'runserver'挂起,只是我必须每隔几天重新启动它,因为它停止响应。 – 2012-01-06 13:23:06

+0

你可以试试django-devserver。它和runserver一样工作(实际上替换runserver),但它运行在不同于默认runserver的多个线程中。至少可以更稳定。 – 2012-01-06 16:15:19

回答

0

这个问题的答案是很多比我想象的要简单,我很抱歉让那些回复的人感到困惑。基本上我只想要一种方法来在我们的screen会话中以比./manage.py runserver ip:port更稳定的方式托管我们设计师的开发环境。我认为必须有一种方法来为Apache设置类似的东西,但不知道它是什么。

这是我得到了什么工作:

在你settings.py设置你的STATIC_URLMEDIA_URL变量相对URL。在我的情况下,我使用/static//media/

MEDIA_ROOT = PROJECT_ROOT + "/htdocs/media/" 
MEDIA_URL = "/media/" 
SERVE_STATIC = True 
STATIC_ROOT = PROJECT_ROOT + "/htdocs/public/" 
STATIC_URL = "/static/" 

配置Apache,就像您没有任何静态文件一样。换句话说,忽略文档在<Locaiton>块中使用SetHandler None的建议。

<VirtualHost *:80> 

    WSGIScriptReloading On 
    WSGIDaemonProcess someprocessname 
    WSGIProcessGroup somegroupname 
    WSGIApplicationGroup somegroupname 
    WSGIPassAuthorization On 

    WSGIScriptAlias//path/to/config.wsgi 

    ServerName somewhere.awesome.ca 

    <Location "/"> 
     Order Allow,Deny 
     Allow from all 
    </Location> 

    ErrorLog /var/log/apache2/somewhere.awesome.ca.err 
    CustomLog /var/log/apache2/somewhere.awesome.ca.log combined 

</VirtualHost> 

我希望这有助于在未来的正确方向指向某人。

0

源代码管理?让他们检查更改,然后设置一个提交挂钩来收集静态并重新启动服务器。有了好的Windows GUI,我从来没有一个设计师无法掌握基本概念。如果您使用的是dcvs,您可以始终将它们放在自己的分支中,因此您必须合并到主要的回购库中,以防止它们错误地破坏其他东西。

+0

他们都非常喜欢颠覆命令(cli和gui),但我不想强迫他们只是改变CSS中的颜色。它会很慢,并会用超级变化填满日志。我希望找到一个可以重现'runserver'合并效果的Apache配置。 – 2012-01-06 13:31:02

+0

你有没有想过使用mod_wsgi或fast_cgi?如果您触摸正在运行的脚本文件,它将重新加载服务器 – tkone 2012-01-06 17:28:28