有人可以通过使用Amazon EC2托管服务为如何实现托管基于Django的网站提供具体步骤吗?
这可能吗?
我的网站源代码可以找到here
我骂了一眼,找到了这个article
但在做任何事情之前,我只想获得一些关于Amazon EC2托管的基本想法。
答案 0 :(得分:31)
这当然是可能的,但听起来EC2不是最适合你的选择。对于这样做的人的例子,谷歌搜索“django ec2”并查看第一和第二个链接。链接,如this或this(已编辑,因为此问题现在是该查询的热门google结果!)
在一个非常简单的意义上,EC2只是一个可以按小时租用的服务器。你可以让它运行Windows或Linux,然后像往常一样安装python和django。事实上,可能有一个已经预先配置了django的图像。您的项目处于什么阶段?只是研究,或者你是否已经陷入与django或ec2的特定问题?
<强>更新强> 好吧,我觉得你很困惑的是那里有各种不同类型的托管。在一个极端,你可以支付你自己的物理服务器,安装自己的操作系统(如Windows或Linux),安装自己的python,你自己的web服务器,如apache或IIS,你自己的django库,你自己的数据库(如mysql)等,然后上传您的网站。在另一个极端,您可以在共享主机服务上支付帐户,其他人已经完成了操作系统,python,Web服务器等的所有设置,您需要做的就是上传您的网站代码。 EC2更接近第一个极端,对你来说可能有点过分。我认为在您的情况下,您应该寻找更有管理的解决方案 我会查看这个网页,其中列出了一堆不同的django托管公司: Django hosting
答案 1 :(得分:8)
如果您不想从头开始设置服务器,另一个选择就是使用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。
在尝试直接在云中部署应用程序之前,您可以使用本机安装程序并在本地计算机上测试部署。
我们还有cost estimation tool。这只是为了简单介绍一个简单的EC2 / EBS设置,亚马逊并不总是像你期望的那样昂贵,尽管它取决于很多因素。 (虽然根据你的意见,你似乎已经看过了费用)。
答案 2 :(得分:2)
假设您在实例上使用Apache服务器,Django网站上的官方指令比许多博客文章更好。这是我从链接中复制的内容: https://docs.djangoproject.com/en/1.5/howto/deployment/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>
答案 3 :(得分:2)
我在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
(如果你没有安装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>
运行迁移到同步数据库:
python manage.py migrate
重启apache2:
sudo service apache2 reload
我希望您没有在settings.py中对模板和静态路径进行硬编码,如果是,则将其更改为动态路径,或者相应地进行编辑。
就是这样! 访问您的公共IP或DNS以访问AWS EC2实例上托管的Django网站。
如果您收到任何错误,请在下方发表评论。