Установка Django в среде Vagrant / Alexey Nurgaliev

Для размещения будет использоваться Apache с mod_wsgi.

Vagrantfile

Содержимое Vagrantfile:

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

  config.vm.box = "precise32"
  config.vm.network :forwarded_port, guest: 80, host: 8001
  config.vm.provision "shell", path: "prov.sh"

end

Provision

Содержимое файла prov.sh:

#!/bin/bash

sudo apt-get update
sudo apt-get install -y apache2 libapache2-mod-wsgi-py3 python3.2

wget -O Django-1.6.2.tar.gz https://www.djangoproject.com/download/1.6.2/tarball/
tar xzvf Django-1.6.2.tar.gz
cd Django-1.6.2
sudo python3 setup.py install

sudo cp ./default /etc/apache2/sites-available/default
sudo service apache2 restart

Конфигурация Apache

Содержимое файла default:

<VirtualHost *:80>

WSGIScriptAlias / /vagrant/test_deploy/test_deploy/wsgi.py

<Directory /vagrant/test_deploy/test_deploy>  
	<Files wsgi.py>
		Order deny,allow
		Allow from all
	</Files>
</Directory>

Alias /static/ /vagrant/test_deploy/static/

<Directory /vagrant/test_deploy/static>
	Order deny,allow
	Allow from all
</Directory>

ErrorLog /vagrant/error.log

</VirtualHost>

Настройка проекта

Чтобы модули проекта были видны для mod_wsgi, в файл test_deploy/test_deploy/wsgi.py нужно добавить строки:

import sys
...
sys.path.append(os.path.dirname(os.path.dirname(__file__)))

Чтобы статические файлы собирались в каталог test_deploy/static/, нужно в файл test_deploy/test_deploy/settings.py добавить строку:

STATIC_ROOT = os.path.join(BASE_DIR, 'static')
Лицензия Creative Commons
Code More Team - GitHub