如何在AmazonEC2主机上设置Django网站?

如何在AmazonEC2主机上设置Django网站?,django,hosting,amazon-ec2,Django,Hosting,Amazon Ec2,有人能给出具体步骤,说明如何使用Amazon的EC2托管服务实现基于Django的网站托管吗 可能吗 我的网站源代码可以找到 我找了找 但在做任何事情之前,我只想了解一些关于AmazonEC2托管的基本概念 这当然是可能的,但听起来EC2并不是您的最佳选择。有关执行此操作的人员的示例,请参见示例或 在一个非常简单的意义上,EC2只是一个可以按小时租用的服务器。您可以让它运行Windows或Linux,然后像平常一样安装Python和Django。事实上,可能有一个图像已经被Django预先配置好

有人能给出具体步骤,说明如何使用Amazon的EC2托管服务实现基于Django的网站托管吗

可能吗

我的网站源代码可以找到

我找了找


但在做任何事情之前,我只想了解一些关于AmazonEC2托管的基本概念

这当然是可能的,但听起来EC2并不是您的最佳选择。有关执行此操作的人员的示例,请参见示例或

在一个非常简单的意义上,EC2只是一个可以按小时租用的服务器。您可以让它运行Windows或Linux,然后像平常一样安装Python和Django。事实上,可能有一个图像已经被Django预先配置好了

你应该明白,有所有不同类型的主机存在。在一个极端情况下,您可以为自己的物理服务器付费,安装自己的操作系统(如Windows或Linux),安装自己的Python,自己的web服务器(如Apache或IIS),自己的Django库,自己的数据库(如MySQL)等,然后将您的网站上载到该服务器。在另一个极端,你可以在一个共享托管服务上付费,在那里,其他人已经完成了操作系统、Python、web服务器等的所有设置,你所需要做的就是上传你的网站代码。EC2更接近于第一个极端,对你来说可能有点过头了。我认为在您的情况下,您应该寻找一种更易于管理的解决方案。
我想看看这个网页,它列出了许多不同的Django托管公司:

如果您不想从头开始设置服务器,另一个选择是使用。我是一名BitNami开发人员,致力于为几个Python应用程序创建堆栈。BitNami Django堆栈已经包括MySQL 5.1、Apache 2.2(带有mod_wsgi)和安装了MarkDown、html5lib和Python openid的Python。它还包括django 1.3

您需要安装Django调试工具栏,在/opt/bitnami/apps/Django/Django_项目中创建数据库和复制文件,并运行python manage.py命令。之后,如果要在生产环境中使用(而不是django服务器),则需要将apache配置为项目服务器

在尝试直接在云中部署应用程序之前,可以使用本机安装程序并在本地计算机中测试部署


我们也有一个。这只是为了大致了解一个简单的EC2/EBS设置,Amazon并不总是像您预期的那样昂贵,尽管它取决于很多因素。(尽管根据您的评论,您似乎已经查看了成本)。

假设您在实例上使用Apache server,Django站点上的官方说明比许多博客文章更有效。以下是我从链接复制的内容:

编辑以下代码并将其添加到/etc/apache2/apache2.conf中即可

WSGIScriptAlias / /path/to/mysite.com/mysite/wsgi.py
WSGIPythonPath /path/to/mysite.com

<Directory /path/to/mysite.com/mysite>
<Files wsgi.py>
Order deny,allow
Require all granted
</Files>
</Directory>
WSGIScriptAlias//path/to/mysite.com/mysite/wsgi.py
WSGIPythonPath/path/to/mysite.com
命令拒绝,允许
要求所有授权

我在AWS EC2 t2.micro实例(AWS免费层)上托管了我自己的django网站。我在这个项目中使用Django 1.9,使用MySQL作为数据库。 使SSH隧道连接到您的实例,并按照以下步骤操作:

  • 在您的实例上安装apache2和libapache2 mod wsgi:

    sudo apt get安装apache2 libapache2 mod wsgi

  • 在您的实例上安装django:

    sudopip安装django

  • 安装mysql:

    sudo apt get install mysqldb

    sudopip安装mysql-python

    sudo apt get安装libmysqlclient dev

  • (如果没有安装pip:
    sudo apt get install python pip

  • 为django项目配置mysql。将django项目导入到
    /var/www/html
    。(使用git是最好的方法)

  • 编辑
    /etc/apache2/sites available/000 default.conf

    <VirtualHost *:80>
        Alias /static /path_to_my_static_folder
    
        <Directory /path_to_my_project_folder_containing_wsgi.py>
            <Files wsgi.py>
                Require all granted
            </Files>
        </Directory>
    
        WSGIDaemonProcess project_name python-path=/path_to/lib/python2.7/site-packages
    
        WSGIProcessGroup project_name
        WSGIScriptAlias / /path_to_wsgi.py
    </VirtualHost>
    
    
    别名/static/path\u到\u我的\u静态\u文件夹
    要求所有授权
    WSGIDaemonProcess项目\u name python path=/path\u to/lib/python2.7/site-packages
    WSGIProcessGroup项目名称
    WSGIScriptAlias//path_to_wsgi.py
    
  • 运行迁移到同步数据库:

    python manage.py迁移

  • 重新启动apache2:

    sudo服务apache2重新加载

  • 我希望您没有在settings.py中硬编码模板和静态路径,如果是,则将其更改为动态路径,或者相应地编辑它

    就这样! 访问您的公共IP或DNS以访问AWS EC2实例上托管的Django网站


    如果您遇到任何错误,请在下面进行评论。

    作为补充,如果他们不知道如何管理服务器,我建议他们使用托管解决方案。很有可能他们会花更少的时间来解决问题,网络也会喜欢农场里没有其他机器人。我是django和python方面的新手。我想尝试在EC2上运行一个开源网站,因为我相信EC2是我能使用的最便宜的。我可以在本地机器上运行django网站。只是想把它发布到互联网上。EC2远远不是你能用的最便宜的。如果您需要专用VPS,请尝试slicehost.com。否则,看看其中一个托管解决方案。有趣的是,因为这个页面现在是“django ec2.”的#1结果:)这里的例外不是有限使用的自由年吗?也许这对精益开发很有好处,在第一年用一笔用户测试产品,然后在必要时进行迁移。如果你读了你找到的文章,你有哪些问题没有得到回答?读了那篇文章后,我觉得EC2不是一个简单的托管,比如将我的网站FTP到某个文件夹,我必须遵循很多步骤才能让它工作。我只是想从高层了解为什么我需要执行这些步骤,而不是简单地将我的网站和数据库上传到h