0

我通过 vagrant 和 virtual box 设置了我的虚拟环境。我使用 Aptana IDE 进行 django 开发,我想知道是否有办法将 aptana 中的新项目与 VM 集成。我以前使用过 virtualenv,我只是将我的 python 路径更改为包含我的 virtualenv 目录。但是,对于虚拟盒子,我不知道该怎么做。我认为这将是相同的程序,但我不这么认为。使用 Virtualenv,我能够找到我在该目录中创建的项目。当我通过 Vagrant+Virtual Box 创建项目时,我无法在任何地方找到项目目录......它不在我为虚拟环境设置的专用目录中。请帮忙。谢谢。

4

1 回答 1

0

你可以用 Vagrant 做到这一点。让我给你举个例子:

一、项目结构:

/yourdjangoapp
    /... # all your app stuff here
    /manage.py
/vagrant
    /provisioning
        /init.sh
/Vagrantfile
/.project

二、/Vagrantfile(带有默认精确64框的简单示例):

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
    config.vm.box = "precise64"
    config.vm.box_url = "http://files.vagrantup.com/precise64.box"
    config.vm.provision :shell, :path => "vagrant/provisioning/init.sh"
    config.vm.network :forwarded_port, guest: 8000, host: 8000
end

三、/vagrant/provisioning/init.sh

if [ ! -f /home/vagrant/.vm_initialized ]
then
    rm -rf /var/www
    ln -fs /vagrant /var/www
    touch /home/vagrant/.vm_initialized
fi

发生了什么?

  • Vagrant 为每个 vm 创建一个共享文件夹,默认为 quest os 中的“/vagrant”,以及您在主机上放置 Vagrantfile 的文件夹。

  • 我们将配置 shell 脚本添加到我们的 Vagrant 配置中,因此 Vagrant 将在启动 VM 后运行它

  • 在 /vagrant/provisioning/init.sh 我们为共享文件夹设置了一个符号链接到 /var/www (只是一个例子,所以我们可以使用 apache 访问它而无需进一步配置)

  • 由于 Vagrant 将在每个“vagrant up”上运行它,我们必须检查 vm 是否已经初始化(init.sh 中的 if-block)

然后去哪儿?

好吧,您可以使用以下命令启动您的开发服务器:

python /var/www/yourdjangoapp/manage.py runserver 0.0.0.0:8000

并且应该能够通过您的主机访问它

http://localhost:8000/

您现在可以使用您最喜欢的编辑器在主机上编辑您的项目(放置在 /yourdjangoapp 中)。

对于新项目,创建/复制项目结构。当 Vagrant 为每个项目创建一个新的 VM 时,来宾中的共享文件夹始终链接到您当前项目的文件夹。

在没有供应商的情况下工作

当前示例显示了我使用的设置。我的 init.sh 包括安装包、拉 GIT 存储库等内容。

当然,您可以省略提供部分并直接使用来宾操作系统中 /vagrant 中可用的共享文件夹。因此,您应该能够使用以下命令启动开发服务器:

python /vagrant/yourdjangoapp/manage.py runserver 0.0.0.0:8000

高温高压

基督教

于 2013-07-24T08:31:48.757 回答