在AWS Elastic Beanstalk上部署Geodjango应用程序

时间:2018-04-03 19:04:23

标签: django amazon-web-services elastic-beanstalk gdal geodjango

我正在尝试在AWS Elastic Beanstalk上部署geodjango应用程序。配置是运行Python 3.6的64位Amazon Linux 2017.09 v2.6.6。尝试部署时出现此错误:

Requires: libpoppler.so.5()(64bit) Error: Package: gdal-java-1.9.2-8.rhel6.x86_64 (pgdg93) Requires: libpoppler.so.5()(64bit)

如何安装所需的包?我通读Setting up Django with GeoDjango Support in AWS Beanstalk or EC2 Instance,但我仍然遇到问题。我的ebextensions目前看起来像:

commands:
  01_yum_update:
  command: sudo yum -y update
02_epel_repo:
  command: sudo yum-config-manager -y --enable epel
03_install_gdal_packages:
  command: sudo yum -y install gdal gdal-devel

packages:
  yum:
     git: []
     postgresql95-devel: []
     gettext: []
     libjpeg-turbo-devel: []
     libffi-devel: []

1 个答案:

答案 0 :(得分:5)

为了我未来的项目和其他任何试图开始使用geodjango的人,我会回答我自己的问题。所有积分均归this Medium article。我在这里总结一下。

  1. 创建EB env并将密钥对与其关联。试试t2-micro。
  2. 使用PuTTY使用实例的公共DNS和从密钥对创建的私钥文件SSH到EC2实例。这是一个Windows程序。对于Linux,请参阅https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html
  3. 运行以下命令。警告:可以采取> 30分钟

    wget http://download.osgeo.org/geos/geos-3.4.2.tar.bz2
    tar xjf geos-3.4.2.tar.bz2
    cd geos-3.4.2
    ./configure
    make
    sudo make install
    cd ..
    
    wget http://download.osgeo.org/proj/proj-4.9.1.tar.gz
    wget http://download.osgeo.org/proj/proj-datumgrid-1.5.tar.gz
    tar xzf proj-4.9.1.tar.gz
    cd proj-4.9.1/nad
    tar xzf ../../proj-datumgrid-1.5.tar.gz
    cd ..
    ./configure
    make
    sudo make install
    cd ..
    
    sudo yum-config-manager --enable epel
    sudo yum -y update
    
    sudo yum install make automake gcc gcc-c++ libcurl-devel proj-devel geos-devel autoconf automake gdal
    cd /tmp
    
    curl -L http://download.osgeo.org/gdal/2.2.3/gdal-2.2.3.tar.gz | tar zxf -
    cd gdal-2.2.3/
    ./configure --prefix=/usr/local --without-python
    
    make -j4
    sudo make install
    cd /usr/local
    tar zcvf ~/gdal-2.2.3-amz1.tar.gz *
    
  4. 下一部分对于让env找到gdal很重要。

    export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"
    sudo ldconfig
    

    然后确保给出所有正确的权限并使用正确的数据库引擎,您就可以了。希望。