之前在单机上实现了一个Django服务器,现在我们可以把这个服务器推上一个云平台。这里我选择使用阿里云。
阿里云准备
在阿里云官网(aliyun.com)页面注册阿里云账号。登录后选择云服务器ECS,并选择“创建实例”:
选择操作系统Ubuntu 14.04 64位,设置密码。实例开通后,可以在实例记录中查到它的IP地址,我以199.199.199.199为例。用SSH登录:
ssh [email protected]
直接使用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服务器的具体配置可参考:
运行Django服务器
利用sftp或scp把Django服务器的项目代码放上云平台。由于我们使用了virtualenv来安装Django,所以Django并不在系统
的默认路径上。为了让系统正常运行,还需要在wsgi.py中加入:
import sys
# 加入virtualenv的路径
sys.path.append('/home/vamei/ENV/lib/python2.7/site-packages')