被解放的姜戈08 远走高飞

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL DuckDB 分析主实例,集群系列 8核16GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 作者:Vamei 出处:http://www.cnblogs.com/vamei 转载请先与我联系。    之前在单机上实现了一个Django服务器(被解放的姜戈07 马不停蹄),现在我们可以把这个服务器推上一个云平台。

作者:Vamei 出处:http://www.cnblogs.com/vamei 转载请先与我联系。 

 

之前在单机上实现了一个Django服务器(被解放的姜戈07 马不停蹄),现在我们可以把这个服务器推上一个云平台。这里我选择使用阿里云。

 

看着复仇的火焰燃烧,姜戈露出得意的笑容。

 

阿里云准备

在阿里云官网(aliyun.com)页面注册阿里云账号。登录后选择云服务器ECS,并选择“创建实例”:

选择操作系统Ubuntu 14.04 64位,设置密码。实例开通后,可以在实例记录中查到它的IP地址,我以199.199.199.199为例。用SSH登录:

ssh root@199.199.199.199

 

直接使用root账户,有可能给系统带来风险。所以创建一个新的用户vamei,并根据提示设置该用户密码:

sudo adduser vamei

 

为了管理方便,我们赋予该账户以管理员运行命令(sudo)的权力。打开文件/etc/sudoers,找到下面一行:

root ALL=(ALL:ALL)ALL

在这一行下方增加新的一行:

vamei ALL=(ALL:ALL)ALL

编辑/etc/sudoers时,有可能需要先给root增加写入权限。

 

此外,新建用户没有定义默认的SHELL。可以设定为最常用的BASH。打开/etc/passwd,找到对应用户vamei的一行,改为:

vamei:x:1000:1000::/home/vamei:/bin/bash

即在末尾增加了/bin/bash,说明所要用的SHELL。

 

安装Django

登出root,登入vamei的账户,为安装Django做准备。Ubuntu系统中已经自带有Python 2.7。我先安装virtualenv,为网站设立运行时用的虚拟环境。

# 安装virtualenv
sudo apt-get install python-virtualenv

# 创建一个新的虚拟环境,命名为ENV
virtualenv ENV

# 启动ENV
source ENV/bin/activate

完成后,命令行提示符前会出现一个(ENV)的前缀,说明已经处于名为ENV的虚拟环境中。

*** 如果需要退出该虚拟环境,用以下命令:

deactivate

 

在虚拟环境下安装Django:

pip install django

 

安装数据库和HTTP服务器

Django可以直接使用SQLite作为数据库,也可以配置使用其他类型的数据库。这里以MySQL为例,说明相关环境的安装:

# 安装MySQL服务器
sudo apt-get install mysql-server 

# 安装客户工具
sudo apt-get install libmysqlclient-dev

Django虽然自带一个简单的HTTP服务器,但只供开发时使用。为了把Django用于生产环境,还需要搭配专业的HTTP服务器,如Apache, Nginx等。安装Apache服务器:

sudo apt-get install apache2
sudo apt-get install libapache2-mod-wsgi

 

数据库和HTTP服务器的具体配置可参考:被解放的姜戈07 马不停蹄

 

运行Django服务器

利用sftp或scp把Django服务器的项目代码放上云平台。由于我们使用了virtualenv来安装Django,所以Django并不在系统的默认路径上。为了让系统正常运行,还需要在wsgi.py中加入:

 

import sys

# 加入virtualenv的路径
sys.path.append('/home/vamei/ENV/lib/python2.7/site-packages')

 

再按照被解放的姜戈07 马不停蹄配置好对应的数据库和Apache服务器,就可以通过IP地址来访问服务器了。更进一步,还可以注册域名并备案,以便通过域名访问。这些服务都可以在阿里云上找到,使用过程也比较简单,这里从略。

 

姜戈和自己的爱人,骑着马远走高飞。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
9月前
|
小程序 数据管理
如何免费制作简历二维码,让你的简历脱颖而出
通过在简历上添加二维码,HR可以通过手机扫码,访问更多无法直接呈现在纸面上的内容——包括个人作品集、视频介绍、设计稿、详细项目经历甚至是动态的职业成长记录,让招聘者可以更全面的了解你
|
12月前
|
存储 NoSQL MongoDB
.NET MongoDB数据仓储和工作单元模式封装
.NET MongoDB数据仓储和工作单元模式封装
200 15
|
弹性计算 人工智能 数据安全/隐私保护
【手把手教你】如何免费畅快使用阿里云ECS搭建私有Overleaf论文写作服务
本文详细介绍如何利用阿里云ECS免费搭建私有Overleaf论文写作服务,包括ECS服务器的部署、Overleaf服务的安装、TexLive包的更新、XeLaTeX修复、中文字体支持及账号管理等步骤。通过这些操作,你可以实现免费且高效的多人协作论文写作,避免付费版本的高昂费用。适合需要频繁合作撰写论文的团队使用。
【手把手教你】如何免费畅快使用阿里云ECS搭建私有Overleaf论文写作服务
|
数据采集 前端开发 算法
Python Requests 的高级使用技巧:应对复杂 HTTP 请求场景
本文介绍了如何使用 Python 的 `requests` 库应对复杂的 HTTP 请求场景,包括 Spider Trap(蜘蛛陷阱)、SESSION 访问限制和请求频率限制。通过代理、CSS 类链接数控制、多账号切换和限流算法等技术手段,提高爬虫的稳定性和效率,增强在反爬虫环境中的生存能力。文中提供了详细的代码示例,帮助读者掌握这些高级用法。
740 1
Python Requests 的高级使用技巧:应对复杂 HTTP 请求场景
|
XML 安全 JavaScript
goctl 技术系列 - text/template 深入讲解
goctl 技术系列 - text/template 深入讲解
|
自然语言处理 搜索推荐 Java
ElasticSearch 实现分词全文检索 - 概述
ElasticSearch 实现分词全文检索 - 概述
205 0
|
消息中间件 Java Unix
MQ产品使用合集之消费订单状态,订单消费待支付消息失败,是否会导致其他订单也没法消费
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
252 1
【C++】C++封装成DLL并调用(初学者快速入门)
【C++】C++封装成DLL并调用(初学者快速入门)
|
机器人 Ruby
ABB IRB 1200 新一代6轴工业机器人之一
ABB IRB 1200 新一代6轴工业机器人之一
ABB IRB 1200  新一代6轴工业机器人之一