Для размещения будет использоваться Apache с mod_wsgi.
Содержимое Vagrantfile:
1
2
3
4
5
6
7
8
9
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
precise32
- стандартная виртуальная машина (Vagrant box) с Ubuntu 12.04 LTS x86prov.sh
Содержимое файла prov.sh
:
1
2
3
4
5
6
7
8
9
10
11
12
#!/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
python3-pip
)Содержимое файла default
:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<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>
test_deploy
нужно заменить на название каталога с сайтомtest_deploy/static/
)Чтобы модули проекта были видны для mod_wsgi, в файл test_deploy/test_deploy/wsgi.py
нужно добавить строки:
1
2
3
import sys
...
sys.path.append(os.path.dirname(os.path.dirname(__file__)))
Чтобы статические файлы собирались в каталог test_deploy/static/
, нужно в файл test_deploy/test_deploy/settings.py
добавить строку:
1
STATIC_ROOT = os.path.join(BASE_DIR, 'static')