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 服务器