zoukankan      html  css  js  c++  java
  • 被解放的姜戈08 远走高飞

    作者: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地址来访问服务器了。更进一步,还可以注册域名并备案,以便通过域名访问。这些服务都可以在阿里云上找到,使用过程也比较简单,这里从略。

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

  • 相关阅读:
    终于有人把 Docker 讲清楚了,万字详解!
    Java 14 可能带来什么新特性?
    我 45 岁还写代码,怎么了?
    傻傻分不清?Integer、new Integer() 和 int 的面试题
    showModalDialog打开页面有缓存,不走action
    ajax,下拉框级联
    jsp中<!DOCTYPE>标签
    struts配置文件中如何从一个package的action跳到另一个package中的某个action
    jsp通过s:hidden传值给后台,后台数据出现了若干逗号问题
    struts2.0整合json
  • 原文地址:https://www.cnblogs.com/vamei/p/5302943.html
Copyright © 2011-2022 走看看