有人可以通过使用Amazon EC2托管服务为如何实现托管基于Django的网站提供具体步骤吗?

这可能吗?

我的网站源代码可以在这里找到

我骂了一眼,发现这个文章

但在做任何事情之前,我只想获得一些关于Amazon EC2托管的基本想法。

有帮助吗?

解决方案

这当然是可能的,但听起来EC2不是最适合你的选择。对于这样做的人的例子,google for“django ec2”并查看第一和第二个链接。链接,如这个这个(编辑因为这个问题现在是该查询的热门google结果!)

在一个非常简单的意义上,EC2只是一个可以按小时租用的服务器。你可以让它运行Windows或Linux,然后像往常一样安装python和django。事实上,可能有一个已经预先配置了django的图像。您的项目处于什么阶段?只是研究,或者你是否已经陷入与django或ec2的特定问题?

<强>更新 好吧,我觉得你很困惑的是那里有各种不同类型的托管。在一个极端,你可以支付你自己的物理服务器,安装自己的操作系统(如Windows或Linux),安装自己的python,你自己的web服务器,如apache或IIS,你自己的django库,你自己的数据库(如mysql)等,然后上传您的网站。在另一个极端,您可以在共享主机服务上支付帐户,其他人已经完成了操作系统,python,Web服务器等的所有设置,您需要做的就是上传您的网站代码。 EC2更接近第一个极端,对你来说可能有点过分。我认为在您的情况下,您应该寻找更管理的解决方案。
我会查看这个网页,其中列出了一堆不同的django托管公司: Django托管

其他提示

假设您在实例上使用Apache服务器,Django网站上的官方指令比许多博客文章更好用。这是我从链接中复制的内容: https://docs.djangoproject.com/en/1.5/howto/部署/ WSGI / modwsgi /

编辑并将以下代码添加到/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>

我在AWS EC2 t2.micro实例(AWS免费套餐)上托管了我自己的django网站。我将Django 1.9用于此项目,将MySQL用作数据库。 为您的实例建立SSH隧道,并按照以下步骤操作:

  1. 在您的实例上安装apache2和libapache2-mod-wsgi:

    sudo apt-get install apache2 libapache2-mod-wsgi

  2. 在您的实例上安装django:

    sudo pip install django

  3. 安装mysql:

    sudo apt-get install mysqldb

    sudo pip install mysql-python

    sudo apt-get install libmysqlclient-dev

  4. (如果你没有安装pip: sudo apt-get install python-pip

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

    2. 编辑 /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>
      
    3. 运行迁移到同步数据库:

      python manage.py migrate

    4. 重启apache2:

      sudo service apache2 reload

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

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

      如果您收到任何错误,请在下方发表评论。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top