7

PostGIS を使用して Amazon Elastic Beanstalk をセットアップした経験のある人はいますか (Geodjango を利用できるようにするため)。

デフォルトのセットアップ (MySQL を備えた RDS) がすぐにサポートしていない多くの機能があります。 1. PostgreSQL + PostGIS 2. GEOS や Proj.4 などの C/C++ ライブラリをインストールする機能

前もって感謝します

4

6 に答える 6

6

カスタム AMI を使用せずにebextensionsを使用することもできます。これを Amazon インスタンス (2013.09) ami-35792c5c でテストしたので、新しいものではなくそれを使用してください。Django in Elastic Beanstalk 101を完了している場合は、ebextensions について知っています。以下の ebextensions はすぐに使い始めることができます。次の ebextensions を使用できます。リポジトリのベースにある .ebextensions フォルダーに以下を配置するだけです。また、これらの構成ファイルに postgres 9.3 と memcached を含めます。

00_repo_ostgis.config :

files:
  "/etc/yum.repos.d/pgdg-93-redhat.repo":
    mode: "000644"
    owner: root
    group: root
    content: |
      [pgdg93]
      name=PostgreSQL 9.3 $releasever - $basearch
      baseurl=http://yum.postgresql.org/9.3/redhat/rhel-6-$basearch
      enabled=1
      gpgcheck=1
      gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG-93

      [pgdg93-source]
      name=PostgreSQL 9.3 $releasever - $basearch - Source
      failovermethod=priority
      baseurl=http://yum.postgresql.org/srpms/9.3/redhat/rhel-6-$basearch
      enabled=0
      gpgcheck=1
      gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG-93

commands:
  epel_repo:
    command: yum-config-manager -y --enable epel
  remi_repo:
    command: yum-config-manager -y --enable remi

packages:
  rpm:
    pgdg-redhat93-9.3-1: 'http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-redhat93-9.3-1.noarch.rpm'
    remi: 'http://rpms.famillecollet.com/enterprise/remi-release-6.rpm'
    qt4-devel: 'http://mirror.centos.org/centos/6/os/x86_64/Packages/qt-4.6.2-28.el6_5.x86_64.rpm'

01_app_postgis.config :

packages:
  yum:
    libtiff-devel: ''
    libjpeg-devel: ''
    libzip-devel: ''
    freetype-devel: ''
    postgresql-devel: ''
    gdal: ''
    gdal-python: ''
    geos: ''
    proj: ''
    libmemcached: ''
    libmemcached-devel: ''
    cyrus-sasl-devel: ''
    zlib-devel: ''

container_commands:
  01_collectstatic:
    command: 'PYTHONPATH=.:..:../lib cd site/<your_project> && ./manage.py collectstatic -c --noinput && cd ../..'
    leader_only: true
  02_migrate:
    command: 'PYTHONPATH=.:..:../lib cd site/<your_project> && ./manage.py migrate --noinput && cd ../..'
    leader_only: true

option_settings:
  - namespace: aws:elasticbeanstalk:container:python
    option_name: WSGIPath
    value: site/<your_project>/wsgi.py
  - namespace: aws:elasticbeanstalk:container:python:staticfiles
    option_name: /static/
    value: site/<your_project>/static/
  - option_name: DJANGO_SETTINGS_MODULE
    value: settings_prod

私のプロジェクトの構造は少し異なります。設定ファイルと urls.py プロジェクト ディレクトリのルートに移動したため、wsgi.py の設定へのパスを変更する必要がありました。したがって、これに応じて調整します。以前使用していた container_commands と option_settings を使用するだけです。

requirements.txtファイルには、少なくとも次のものが含まれている必要があります

Django==1.7.1
Pillow
psycopg2

他のほとんどの python 依存関係を ../lib に保存します。これを PYTHONPATH に含めているため、リポジトリ構造は次のようになります。

<your_project>/
├── requirements.txt
├── .ebextensions/
│   ├── 00_repos_postgis.config
│   └── 01_app_postgis.config
└── site/
    ├── <your_project>
    │   ├── wsgi.py
    │   ├── settings_prod.py  # used for EB, like settings_local.py but uses env vars
    │   └── settings.py
    └── lib/
        └── <all pip dependencies>

私が作成した展開ツールを確認してください。ファブリックを使用しています。EB CLI ツールから気に入ったものを取り、django 用に調整しました: https://github.com/radlws/django-awseb-tasks

注: 環境を起動するときに AMI ami-35792c5c を使用することが非常に重要です。このセットアップで私のために働いた唯一のものです。他のインスタンスが機能する場合は、お気軽にこの回答に編集してください。元の質問も参照してください。

于 2015-01-08T14:58:24.290 に答える
1

aws Beanstalk の ssh シェルを開きます。以下のコマンドを段階的に実行します。postgis が動作するようになります。

cd /home/ec2-user

sudo yum -y install gcc gcc-c++ make cmake libtool libcurl-devel libxml2-devel rubygems swig fcgi-devel libtiff-devel freetype-devel curl-devel libpng-devel giflib-devel libjpeg-devel cairo-devel freetype-devel readline-devel openssl-devel python27 python27-devel

# PROJ
wget http://download.osgeo.org/proj/proj-4.8.0.tar.gz
tar -zxvf proj-4.8.0.tar.gz
cd proj-4.8.0
./configure
make
sudo make install
cd ..

# GEOS
wget http://download.osgeo.org/geos/geos-3.4.2.tar.bz2
tar -xvf geos-3.4.2.tar.bz2
cd geos-3.4.2
./configure
make
sudo make install
cd ..

# GDAL
wget http://download.osgeo.org/gdal/1.10.1/gdal-1.10.1.tar.gz
tar -zxvf gdal-1.10.1.tar.gz
cd gdal-1.10.1
./configure
make
sudo make install
cd ..

# PostGIS
wget http://download.osgeo.org/postgis/source/postgis-2.1.0.tar.gz
tar -xvf postgis-2.1.0.tar.gz
cd postgis-2.1.0
./configure
make
sudo make install
cd ..

次に、シンボリック リンクを作成します。

ln -s /usr/local/lib/libgdal.so /usr/lib/libgdal.so.1
/sbin/ldconfig
于 2018-05-15T17:24:54.467 に答える
1
于 2018-11-28T22:43:16.790 に答える
1

radtek のソリューションを使用し、最新の Amazon AMI (2014.9) を使用する場合、依存関係の問題に直面する可能性があります。これで解決しました。

于 2015-03-12T23:56:40.357 に答える