我正在尝试使用启用了Vagrant的虚拟机来设置本地Django开发环境,但我不确定最好的方法是什么。
我从生产服务器为Django文件做了git clone
,并安装了生产服务器在本地VM上的所有模块。我想避免在我的本地VM上安装数据库,但遇到了会话的一些问题。本地计算机正在使用SESSION_COOKIE_DOMAIN='localhost'
,并且正在使用SESSION_COOKIE_DOMAIN='.mydomain.com'
,因此会产生一些混淆。
更不用说在我的开发环境中的setting.py上我不得不将IP更改为指向数据库的公共IP地址(因此在安全性上戳了一个洞),而我的生产settings.py正在使用本地IP所以我最终使用了不同的settings.py文件。
我可以继续尝试新的方法,但我真的必须开始使用这个项目,而且我很确定有些人已经弄明白了。
那么你是如何设置Django开发环境的呢?
答案 0 :(得分:2)
我在GitHub上有一个公共回购:
https://github.com/FlipperPA/djangovagrant
README.md的说明:
Django / Python / MySQL
这是Django开发的Vagrant项目。
这还不支持berkshelf或图书管理员;所有必要的回购都包含在'cookbooks'中。
先决条件,所有平台:
Virtualbox https://www.virtualbox.org/wiki/Downloads 流浪者http://downloads.vagrantup.com/
先决条件,仅限Windows:
GIT-的bash ruby rvm
相当容易让它运行:
vagrant up
vagrant ssh djangovm
**(注意:您现在位于Virtualbox VM中作为超级用户流浪者)
sudo apt-get install python-pip
**(注意:PIP是一个Python包管理器)
sudo apt-get install python-mysqldb
sudo pip install django
启动Django项目:
django-admin.py startproject django_project
cd django_project
python manage.py runserver [::]:8000
VM配置为使用端口转发。如果一切顺利,您应该能够通过运行该虚拟机的计算机上的浏览器访问正在运行的服务器:
http://localhost:8001/
Django的新手?下一步?我强烈推荐:http://www.tangowithdjango.com/ 有关更多高级主题,请查看Django的两个Scoops:http://twoscoopspress.org/
答案 1 :(得分:1)
我看到有一些django应用程序可以管理这个但我总是更喜欢以下我的settings.py,因为不同配置的数量通常很少
SITE_TYPE = environ.get( 'SITE_TYPE', 'DEV' )
if SITE_TYPE == 'LIVE':
DEBUG = False
DEFAULT_HOST = ''
else:
DEBUG = True
DEFAULT_HOST = '50.56.82.194'
EMAIL_HOST = DEFAULT_HOST
答案 2 :(得分:0)
我可以推荐this repository。
您可以对其进行修改以支持Django项目。
Vagrantfile
更新:
config.vm.define "web1", primary: true do |web1_config|
web1_config.ssh.forward_agent = true
# Create a private network, which allows host-only access to the machine
web1_config.vm.network "private_network", ip: "192.168.11.10"
web1_config.vm.hostname = "web1.#{domain}"
web1_config.vm.provision "shell", path: "provisioners/shell/python.setup.sh"
web1_config.vm.provision "shell", path: "provisioners/shell/application.setup.sh"
end
然后添加一个provisioners/shell/application.setup.sh
文件,其中包含以下内容:
#!/bin/bash
local_user=vagrant
if [ ! -n "$(grep "^bitbucket.org " /home/$local_user/.ssh/known_hosts)" ]; then
ssh-keyscan bitbucket.org >> ~/.ssh/known_hosts 2>/dev/null;
fi
if [[ ! -d "/home/$local_user/app" ]]; then
git clone git@bitbucket.org:czerasz/sample-django-app.git /home/$local_user/app
chown -R $local_user:$local_user /home/$local_user/app
su - $local_user -c "source /usr/local/bin/virtualenvwrapper.sh && mkvirtualenv sample-django-app-env && workon sample-django-app-env && pip install -r /home/$local_user/app/requirements.txt"
fi
更改存储库地址(git@bitbucket.org:czerasz/sample-django-app.git
)并确保您的git存储库根目录中有requirements.txt
。运行vagrant up
。
Vagrant将启动两台机器:
web1
与你的django项目db1
如果仍有问题,请将以下内容添加到Vagrantfile
:
web1_config.ssh.private_key_path = [ '~/.vagrant.d/insecure_private_key', '~/.ssh/bitbucket' ]
在主机(运行vagrant
的机器)上执行此命令:
ssh-add ~/.ssh/bitbucket
~/.ssh/bitbucket
是您用于bitbucket的ssh私钥。根据您的配置,它可以是~/.ssh/id_rsa
或不同的东西。