如何在Amazon EC2托管中设置Django网站?
-
08-07-2019 - |
解决方案
这当然是可能的,但听起来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托管
其他提示
如果您不想从头开始设置服务器,另一个选择是使用 BitNami Django Stack Amazon image 一>。我是BitNami开发人员,并致力于为多个Python应用程序创建堆栈。 BitNami Django Stack已经包含MySQL 5.1,Apache 2.2(带有mod_wsgi)和安装了MarkDown,html5lib和python-openid的Python。它还包括django 1.3。
您需要安装Django Debug Toolbar,创建数据库并将文件复制到/ opt / bitnami / apps / django / django_projects并运行python manage.py命令。之后,如果要在生产中使用(而不是django服务器),则需要为项目服务器配置apache。
在尝试直接在云中部署应用程序之前,您可以使用本机安装程序并在本地计算机上测试部署。
我们还有费用估算工具。这只是为了简单介绍一个简单的EC2 / EBS设置,亚马逊并不总是像你期望的那样昂贵,尽管它取决于很多因素。 (虽然根据你的意见,你似乎已经看过了费用)。
假设您在实例上使用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隧道,并按照以下步骤操作:
-
在您的实例上安装apache2和libapache2-mod-wsgi:
sudo apt-get install apache2 libapache2-mod-wsgi
-
在您的实例上安装django:
sudo pip install django
-
安装mysql:
sudo apt-get install mysqldb
sudo pip install mysql-python
sudo apt-get install libmysqlclient-dev
醇>
-
为您的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>
-
运行迁移到同步数据库:
python manage.py migrate
-
重启apache2:
sudo service apache2 reload
醇>
(如果你没有安装pip: sudo apt-get install python-pip
)
我希望您没有在settings.py中对模板和静态路径进行硬编码,如果是,则将其更改为动态路径,或者相应地进行编辑。
就是这样! 访问您的公共IP或DNS以访问AWS EC2实例上托管的Django网站。
如果您收到任何错误,请在下方发表评论。