我试图在AWS Elastic Beanstek上部署一个geodjango应用程序。配置是64位AmazonLinux2017.09 v2.6.6运行Python 3.6。尝试部署时我收到此错误:
Requires: libpoppler.so.5()(64bit) Error: Package: gdal-java-1.9.2-8.rhel6.x86_64 (pgdg93) Requires: libpoppler.so.5()(64bit)
如何安装所需的软件包?我通读了在AWS Beanstalk或EC2实例中使用GeoDjango支持设置Django,但是我仍然遇到问题。我的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: []
为了我未来的项目和任何试图开始使用geodjango的人,我将回答我自己的问题。截至2020年7月更新此答案
创建一个ebextensions文件,以便在部署时在EC2实例上安装GDAL:
01_gdal.config
commands:
01_install_gdal:
test: "[ ! -d /usr/local/gdal ]"
command: "/tmp/gdal_install.sh"
files:
"/tmp/gdal_install.sh":
mode: "000755"
owner: root
group: root
content: |
#!/usr/bin/env bash
sudo yum-config-manager --enable epel
sudo yum -y install make automake gcc gcc-c++ libcurl-devel proj-devel geos-devel
# Geos
cd /
sudo mkdir -p /usr/local/geos
cd usr/local/geos/geos-3.7.2
sudo wget geos-3.7.2.tar.bz2 http://download.osgeo.org/geos/geos-3.7.2.tar.bz2
sudo tar -xvf geos-3.7.2.tar.bz2
cd geos-3.7.2
sudo ./configure
sudo make
sudo make install
sudo ldconfig
# Proj4
cd /
sudo mkdir -p /usr/local/proj
cd usr/local/proj
sudo wget -O proj-5.2.0.tar.gz http://download.osgeo.org/proj/proj-5.2.0.tar.gz
sudo wget -O proj-datumgrid-1.8.tar.gz http://download.osgeo.org/proj/proj-datumgrid-1.8.tar.gz
sudo tar xvf proj-5.2.0.tar.gz
sudo tar xvf proj-datumgrid-1.8.tar.gz
cd proj-5.2.0
sudo ./configure
sudo make
sudo make install
sudo ldconfig
# GDAL
cd /
sudo mkdir -p /usr/local/gdal
cd usr/local/gdal
sudo wget -O gdal-2.4.4.tar.gz http://download.osgeo.org/gdal/2.4.4/gdal-2.4.4.tar.gz
sudo tar xvf gdal-2.4.4.tar.gz
cd gdal-2.4.4
sudo ./configure
sudo make
sudo make install
sudo ldconfig
如图所示,该脚本使用测试函数检查gdal是否已经存在。然后它下载Geos、Proj和GDAL库并将它们安装在usr/local目录中。在撰写本文时,geodjango(Django 3.0)最多支持Geos 3.7、Proj 5.2(也需要投影数据。当前版本不需要它)和GDAL 2.4警告:此安装过程可能需要很长时间。此外,我不是Linux专业人士,所以其中一些命令可能是多余的,但它可以工作。
最后,我将以下两个环境变量添加到我的弹性豆茎配置中:
LD_LIBRARY_PATH: /usr/local/lib:$LD_LIBRARY_PATH
PROJ_LIB: usr/local/proj
如果您仍然有问题,我建议您检查EC2实例中的日志和ssh-ing来检查安装是否发生了。本帖原创
我有一个用Python 2.7/Tornado编写的服务器,我正在尝试将其部署到AWS上。我遇到了AWS弹性豆茎,它看起来是一种非常方便的方法来部署我的代码。 txt文件中有一个tornado==4.4.2的条目。 我尝试添加一些日志语句来写入外部文件,但该文件没有被创建,这可能意味着应用程序甚至没有启动。 如果有人能提供一些在AWS-EB上部署龙卷风应用程序的步骤,或者我应该如何开始解决这个问题
我想使用 AWS 弹性豆茎在 AWS 上部署一个Spring启动应用程序,但我没有看到上传 jar 文件的选项,只有 zip 和 war (?!) 在本教程中,他们正在部署一个jar文件:https://AWS . Amazon . com/es/blogs/devo PS/deploying-a-spring-boot-application-on-AWS-using-AWS-elastic-b
假设我在Wordpress中创建了一个站点,它运行在Elastic Beanstalk上。现在,在运行的应用程序上,我将创建帖子/页面,上传图像等。也就是说,数据库中的一些数据、视频、文件和记录将被添加到运行的应用程序中。 从我在AWS控制台中看到的情况来看,我可以部署一个应用程序的不同版本--但是根据上面的场景,如果我部署了一个新版本,我会不会丢失直接上传到正在运行的应用程序中的所有文件(即文件
我对Amazazon Web服务提供的弹性IP服务的使用有点困惑。我想主要的想法是,按照以下简单的过程,我可以切换到web应用程序的新版本,而不会停机: null 抱歉,如果有些问题听起来很愚蠢,但我只是一个程序员,这是我第一次建立云系统。 谢谢!
我正在将我的第一个应用程序(Flask)部署到EB,遇到了一个障碍。使用PostgreSQL需要安装psycopg2,但我不知道如何让它运行。 我在这篇文章(Amazon Elastic Beanstalk上的Psycopg2)和这篇文章中都看到了(https://realpython.com/blog/python/deploying-a-django-app-to-aws-elastic-be
我的Flask应用程序需要包cryptography==2.2.2。我在requirements.txt中包含了这一点。 但是当部署到AWS上时,我得到了一个错误 对于那些感兴趣的人,我使用的是运行在64位debian/2.10.0上的Python 3.4。后来我将配置切换到运行在64位Amazon Linux/2.7.0上的Python 3.6,似乎解决了这个问题。 我现在的问题是我得到了这个错