markdown AWS EC2 Apache + RDS Postgresqlで(geo)djangoで动かすまで

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了markdown AWS EC2 Apache + RDS Postgresqlで(geo)djangoで动かすまで相关的知识,希望对你有一定的参考价值。

## ubuntu server
インスタンスの作成.
キーの取得.*.pem

## RDSでDBの作成
postgresqlを利用(postgisのため)
セキュリティグループの設定に注意.ポート5432空けておく.
アクセスして"create extension postgis;"を実行.
```
[local] $ psql --host=hgoehoge.abcdefghi.ap-northeast-1.rds.amazonaws.com \
--port=5432 \
--username *** \
--dbname=*****
Password for user ***:
```

## Ubuntuへのアクセス
```
[local] $ ssh -i *.pem ubuntu@{address}
$ uname --a
Linux ip------generic #118-Ubuntu SMP Thu Dec 17 22:52:10 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
$  cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.3 LTS"
```

## 必要なパッケージのインストール

### postgresql, postgis
```
$ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt trusty-pgdg main" >> /etc/apt/sources.list'
$ wget --quiet -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get install postgresql-9.3-postgis-2.1 postgresql-contrib
```

### django(geodjango)
```
$ sudo apt-get install gdal-bin
$ sudo apt-get install python-psycopg2
$ sudo apt-get install python-pip
$ sudo pip install Django
```

### apache, mod_wsgi
```
$ sudo apt-get install apache2 apache2-dev
$ sudo apt-get instal libapache2-mod-wsgi
```

## djangoまわり

### プロジェクトの作成
```
$ django-admin startproject myproject
$ cd myproject
$ python manage.py startapp api
```
### djangoの設定
```
DATABASES = {
  'default': {
  'ENGINE': 'django.contrib.gis.db.backends.postgis',
  'NAME': 'geodjangodb',
  'HOST': '++++++'	# DBアドレス
  'USER': '----', 	# 前回作成DBユーザの名前
  'PASSWORD': '*****', # 前回作成DBユーザのパスワード
  }
}
INSTALLED_APPS = (
     ....
  'django.contrib.gis', 
  'api',
)

LANGUAGE_CODE = 'ja'
TIME_ZONE = 'Asia/Tokyo'
```

### api/admin.py
django-leafletをインストールしておくと管理画面で
空間データがleaftlet上で表示されるようになる.
```
$ pip install django-leaflet
```
例
```
from django.contrib.gis import admin
from demo.models import Building
from leaflet.admin import LeafletGeoAdmin

admin.site.register(Building, LeafletGeoAdmin)
```

### urls.py
```
from django.conf.urls import patterns, include, url
from django.contrib.gis import admin
admin.autodiscover()

urlpatterns = patterns('',
  url(r'^admin/', include(admin.site.urls)),
)
```

## Apacheの設定・mod_wsgiの設定
confファイルを作成する.
/etc/apache2/conf-enabled/以下などにhttp.confを作成
```
$ sudo vim /etc/apache2/conf-enabled/http.conf
```
```
LoadModule wsgi_module modules/mod_wsgi.so
WSGIScriptAlias / /home/ubuntu/wifibigdatalogger_server/wifibigdatalogger_server/wsgi.py
WSGIPythonPath /home/ubuntu/wifibigdatalogger_server
Alias /static/admin /usr/local/lib/python2.7/dis-packages/django/contrib/admin/static/admin/

<Directory /home/ubuntu/wifibigdatalogger_server/wifibigdatalogger_server>
<Files wsgi.py>
Requre all granted
</Files>
</Directory>

<Directory /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin>
Require all granted
</Directory>
```

## Apache restart
```
$ sudo /etc/init.d/apache2 restart
```

以上是关于markdown AWS EC2 Apache + RDS Postgresqlで(geo)djangoで动かすまで的主要内容,如果未能解决你的问题,请参考以下文章

markdown AWS VPCの作成からEC2インスタンスの起动,ELBの设定まで

AWS Amazon Linux EC2 实例:apache 用户权限被拒绝写入目录

我们如何在aws ec2 linux实例的不同端口安装多个apache服务器

在 ec2 上托管的 apache spark 中使用 AWS EMRFS

AWS EC2 上的 Apache VirtualHosts 无法正常工作

用于 ELB 的 AWS Certificate Manager 指向在 EC2 上运行的 Apache 服务器