被解放的姜戈08 远走高飞
之前在单机上实现了一个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地址来访问服务器了。更进一步,还可以注册域名并备案,以便通过域名访问。这些服务都可以在阿里云上找到,使用过程也比较简单,这里从略。
姜戈和自己的爱人,骑着马远走高飞。