LoginSignup
2
2

More than 5 years have passed since last update.

django on ubuntu via vagrant host

Last updated at Posted at 2015-02-09

Vagrantで立て終わったUbuntu Guest OS上でdjango wepappを動かしてみた時の記録。
apache用の資材置く先とか怪しいので間違いが判明次第適宜直します。

環境

django 1.6.1
apache2 2.4.7
libapache2-mod-wsgi 3.4

vagrant 1.7.2
Vagrant Guest: Ubuntu 14.04
Vagrant Host: Cent OS 6.6 (というかConoha)

前提

Vagrant Guest OSはインストール及び起動済み。

djangoインストール

参考:http://qiita.com/mountcedar/items/179fb0d9f4f87f9241c6

$ sudo apt-get update
$ sudo apt-get install -y apache2 libapache2-mod-wsgi
$ sudo apt-get install -y python-django

djangoでテスト用に何か作る

django-admin startproject webservice

ディレクトリ構造は下記のような形になる。

webservices/
  django.wsgi★最初は存在しないので追加する
  manage.py
  webservices/
    __init__.py
    settings.py
    urls.py
    wsgi.py

設定ファイル

django.wsgi
#!/usr/bin/env python
# coding: utf-8

import os
import sys

sys.path.append('<webservicesを配置したディレクトリ>')
sys.path.append('<webservicesを配置したディレクトリ>/webservices')

os.environ[ 'DJANGO_SETTINGS_MODULE' ] = 'webservices.settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

/etc/apache2/sites-available/django

WSGIScriptAlias /services <django.wsgiの絶対パス>

<Directory /home/issei/django/webservices/>
Order deny,allow
Allow from all
</Directory>

VagrantのHost - Guest間を繋ぐ

Host Guest
HTTP 8888 8000

Host側設定

iptables

Cent OSのiptablesはここ。

/etc/sysconfig/iptables

REJECTルールよりも上に書かないとREJECTされるので注意する。

(前略)
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8888 -j ACCEPT ★この行を追加する
-A INPUT -j REJECT --reject-with icmp-host-prohibited

Vagrantfile

参考:http://qiita.com/ftakao2007/items/0ec05c2ef3c14cdbea11#2-4

hostとguestを繋ぐルールと、NICをブリッジ接続する設定を有効にする。

  #(前略)
  # config.vm.network "forwarded_port", guest: 80, host: 8080
  config.vm.network "forwarded_port", guest: 8000, host: 8888, id:"http" #★この行を追加する

  config.vm.network "public_network" #★この行をコメントインする

Guest側設定

ファイアウォール"ufw(uncomplicated firewall)"を使う。

有効化

$ sudo ufw enable

ポート8000番を許可する

$ sudo ufw allow 8000

※SSHで作業してるので下記も恐らく必須。

$ sudo ufw allow 22

反映する

$ sudo ufw reload

確認する

$ sudo ufw status

django起動する

manage.pyのディレクトリに移動後

$ python manage.py runserver 0.0.0.0:8000

これでHost OSの"グローバルアドレス:8888"からdjangoにHTTPアクセスできるはず。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2