在AWS上部署Python webApp(不使用Elastic Beanstalk)

时间:2017-03-21 15:52:19

标签: python amazon-web-services amazon-ec2 web-hosting

我正在AWS上托管一个网站。它是一个带有SQL数据库的Web界面。该网站将用于: 1.从数据库查看查询结果
2.将数据插入数据库
3.查看数据并在需要时进行更新。

当我在localhost(我的C盘上的Apache)上运行应用程序时,代码和连接工作文件。但我们希望在AWS上托管它,以便我周围的人可以使用它 所以,在AWS中我将代码上传到EC2并在其上安装了apache,所有的html链接都在工作,但python文件只是显示代码。

我猜它与shebang有关。目前我的代码有以下shebang:

#!C:\Python27\python.exe

有人可以引导我,如果它是shebang或者我还有什么需要做的。

我已经安装了boto,但不知道下一步该怎么做。 AWS网站和大多数论坛都在谈论使用Elastic Beanstalk。我想在不使用Elastic Beanstalk的情况下在AWS上托管功能完备的Python webApp。

2 个答案:

答案 0 :(得分:0)

您是否已通过端点登录EC2实例,然后从命令行运行脚本。我有一些EC2运行apache2的经验,只有我的应用程序是用Java编写的,以前使用python脚本我能够通过登录到我的EC2实例运行它们,你可以从AWS管理控制台执行此操作。希望这对你有所帮助。

答案 1 :(得分:0)

当apache显示代码时,这是一个明确的信号,表明Apache未正确配置为执行 python。您应该查看是否已正确安装和配置mod_python

此外,#!通常用于Linux而不是Windows。如果安装并正确配置了apache / mod_python,我无法想象你需要#!的代码,因为.py扩展就足够了。

如果您的EC2实例确实正在运行Linux,并且您的代码确实需要#!尝试:

#!/bin/python

OR

#!/usr/local/bin/python

(取决于python二进制文件的位置,这些是最常见的位置。)

如果您的EC2实例正在运行Windows,那么"Unless you are using cygwin, windows has no shebang support"