django项目部署至linux云服务器

   当Django web项目在本地开发完毕后,这仅能自己浏览,需要将代码放到服务器上,这样用户才能访问,下文将详细介绍Django项目如何部署到linux服务器。

<font color=red>服务器环境介绍</font>

  • 操作系统:CentOS7
  • Python版本: 2.7.5
  • Nginx主配置文件位置:/etc/nginx/nginx.conf

<font color=red>安装基础开发包</font>

Centos 下安装步骤如下:

  • yum groupinstall "Development tools" -y
  • yum install zlib-devel bzip2-devel pcre-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel -y

<font color=red>安装Python包管理工具</font>

easy_install包链接: https://pypi.python.org/pypi/distribute

安装步骤:

  • cd ~

  • yum install wget -y

  • wget https://pypi.python.org/packages/source/d/distribute/distribute-0.6.49.tar.gz

  • ls

  • tar xf distribute-0.6.49.tar.gz

  • cd distribute-0.6.49

  • python setup.py install

CentOS7:
python2.7 setup.py install

CentOS6:
python2.7 setup.py install

测试是否安装成功:
easy_install --version

<font color=red>安装 uwsgi</font>

sudo yum install python-devel -y

1、安装wget,gcc-c++ gcc*:

yum install -y wget gcc-c++ epel-release -y

2、安装pip

yum install python-pip -y

3、升级pip

pip install --upgrade pip

4、Uwsgi安装

pip install uwsgi

Successfully installed uwsgi-2.0.17.1

5、查看 uwsgi 版本

uwsgi --version

CentOS 7.0使用的是firewall作为防火墙,默认防火墙是打开的
查看防火墙状态:
firewall-cmd --state

停止firewall:
systemctl stop firewalld.service

禁止firewall开机启动:
systemctl disable firewalld.service

uwsgi:https://pypi.python.org/pypi/uWSGI

uwsgi 参数详解:

http://uwsgi-docs.readthedocs.org/en/latest/Options.html

测试 uwsgi 是否正常:

新建 test.py 文件,内容如下:

def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return "Hello World"

然后在终端运行:
uwsgi --http :8001 --wsgi-file test.py

在浏览器内输入:
http://服务器IP地址:8001

查看是否有"Hello World"输出,若没有输出,请检查你的安装过程。

<img alt="django项目部署至linux云服务器-Picture2.png" src="assets/django项目部署至linux云服务器-Picture2.png" width="" height="" >

<font color=red>Django 安装</font>

Django 版本对应的Python 版本:

Django 版本 Python 版本
1.8 2.7, 3.2 , 3.3, 3.4, 3.5
1.9, 1.10 2.7, 3.4, 3.5
1.11 2.7, 3.4, 3.5, 3.6
2.0 3.5+

1、Django安装
pip install django==1.8

2、Python版本查看:

方式一:pip list
方式二:python
      import django
      print(django.get_version())

3、测试django:

cd ~
django-admin.py startproject mysite
cd mysite

进入项目文件夹
/data/wwwroot/mysite
,添加static和templates,分别用于存放静态文件和模板文件。

django-admin.py startapp blog
允许所有主机访问
增加应用

python manage.py runserver 0.0.0.0:8002
(注意0.0.0.0这个IP地址)

在浏览器内输入:http://127.0.0.1:8002,检查django是否运行正常。

<font color=red>安装Nginx</font>

yum install nginx -y

Nginx主配置文件:
/etc/nginx/nginx.conf

看服务器上安装的nginx版本号,主要是通过ngix的-v或-V选项,查看方法如下图所示:

<img alt="django项目部署至linux云服务器-Picture1.png" src="assets/django项目部署至linux云服务器-Picture1.png" width="" height="" >

-v 显示 nginx 的版本。

-V 显示 nginx 的版本,编译器版本和配置参数。

有时想知道nigix是否在正常运行,需要用linux命令查看nginx运行情况。执行命令:

ps -A | grep nginx

如果返回结果的话,说明有nginx在运行,服务已经启动。

nginx启动、停止、无间断服务重启:

service nginx start

service nginx stop

service nginx reload

在浏览器中输入IP地址:
<img alt="django项目部署至linux云服务器-Picture3.png" src="assets/django项目部署至linux云服务器-Picture3.png" width="" height="" >

出现如下界面:
<img alt="django项目部署至linux云服务器-Picture4.png" src="assets/django项目部署至linux云服务器-Picture4.png" width="" height="" >

则nginx安装成功!

<font color=red>uwsgi 配置</font>

Django正常运行之后我们就开始配置一下uwsgi。

我们网站项目路径是 /data/wwwroot/mysite/,在项目根目录下创建
mysite.xml文件,输入如下内容:

<uwsgi>
   <socket>127.0.0.1:8997</socket><!-- 内部端口,自定义 -->
   <chdir>/data/wwwroot/mysite/</chdir><!-- 项目路径 -->
   <module>mysite.wsgi</module>
   <processes>4</processes> <!-- 进程数 -->
   <daemonize>uwsgi.log</daemonize><!-- 日志文件 -->
</uwsgi>

并保存
配置文件里的mysite这是我们的项目名。

<font color=red>配置nginx.conf文件</font>

首先切换到nginx的配置文件所在路径:
cd /etc/nginx

备份一下nginx.conf文件,以防意外,

cp nginx.conf nginx.conf.bak

然后打开nginx.conf,把原来的内容删除,

rm -rf nginx.conf

直接加入以下内容:(nginx.conf)

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    server {
        listen       80;
        server_name  www.django.cn;
        charset utf-8;
        location / {
           include uwsgi_params;
           uwsgi_pass 127.0.0.1:8997;
           uwsgi_param UWSGI_SCRIPT mysite.wsgi;
           uwsgi_param UWSGI_CHDIR /data/wwwroot/mysite; #项目路径

        }
        location /static/ {
        alias /data/wwwroot/mysite/static/; #静态资源路径
        }
    }
}

注意该配置文件中的路径要和mysite.xml项目路径对应上。

执行以下命令先检查配置文件是否有错
nginx -t,没有错就执行以下命令:nginx

终端没有任何提示就证明nginx启动成功。可以使用你的服务器地址查看,成功之后就会看到一个nginx欢迎页面。

<font color=red>访问项目的页面</font>

进入网站项目目录:
cd /data/wwwroot/mysite/

执行下面命令:
uwsgi -x mysite.xml

以上步骤都没有出错的话。
执行一下命令重启nginx 。

nginx -s reload

然后在浏览器里访问你的项目地址!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,772评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,458评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,610评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,640评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,657评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,590评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,962评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,631评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,870评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,611评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,704评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,386评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,969评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,944评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,179评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,742评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,440评论 2 342