我正在創建一個運行Apache/WSGI/Django/MySQL的小型商業Web項目。
我有一個開發和生產環境,並使用git和結構來推/拉修改。Web應用程序部署 - 混帳環境
現在,我希望能夠在生產服務器之前測試具有與生產服務器類似條件的新版本。
- 我想使用不同的URL和不同的存儲庫使用相同的物理服務器(這是好嗎?)。
- 是否有最佳實踐來設置這個產前環境儘可能接近產品?
- 我應該使用相同的Web服務器和數據庫服務器嗎?在這種情況下,我該如何管理數據庫名稱?
我正在創建一個運行Apache/WSGI/Django/MySQL的小型商業Web項目。
我有一個開發和生產環境,並使用git和結構來推/拉修改。Web應用程序部署 - 混帳環境
現在,我希望能夠在生產服務器之前測試具有與生產服務器類似條件的新版本。
我對類似的設置工作,你沒有描述一個包的完整控制研究主要問題。多個數據庫很容易在設置文件中管理,我根據根目錄名稱更改它們:
ROOTDIR = os.path.abspath(os.path.dirname(__file__))
if ROOTDIR.startswith("dev_"):
# -------- Developing settings ---------
DOMAIN_NAME = 'dev.foo.com'
DATABASES = {
'default':{
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'development_db',
'USER': 'xxxx',
'PASSWORD': 'xxxxx',
'HOST': 'localhost',
'PORT': '',
'OPTIONS': {'autocommit': True,}
}
}
elif ROOTDIR.startswith("production_"):
# --------- Production settings --------
DEBUG = False
DOMAIN_NAME = 'production.foo.com'
TEMPLATE_DEBUG = DEBUG
DATABASES = {
'default':{
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'production_db',
'USER': 'xxx',
'PASSWORD': 'xxx',
'HOST': 'localhost',
'PORT': '',
'OPTIONS': {'autocommit': True,}
}
}
else:
# ....
你可以做的是建立服務器,使每個站點運行在它自己的virtualenv http://pypi.python.org/pypi/virtualenv這可以與apache和wsgi一起工作。
看到這裏例如http://www.foxhop.net/django-virtualenv-apache-mod_wsgi(這是但mod_wsgi的)
這種方式,您有安裝在每個virtualenv中
不是一個壞主意。我已經爲開發者做了這件事。我要去嘗試我的測試服務器。 – 2012-03-29 13:24:51
工作正常,我做了類似'DATABASES ['default'] ['NAME'] ='test_db'' – 2012-04-02 06:51:08