阿里云,CentOS安装Django并配置uwsgi和nginx

CentOS安装Django环境

本文采用的服务器为阿里云轻量级应用服务器,所使用的系统是CentOS 7.3,所搭建的环境为python3.7,Django 2.2。

阿里云CentOS系统

  • 将阿里云服务器重置为CentOS系统

    登录阿里云后台服务器,选择重置系统,选择CentOS 7.3,填写短信验证码重置系统。

  • 升级yum

    sudo yum update
    
  • 防火墙设置,开放端口

    由于重置系统为CentOS后,防火墙只会开启22端口,所以其他端口要使用需要自己开启,而CentOS 7后都使用防火墙,而不是使用iptables了,开启后同时需要确认阿里云服务器后台是否开启次端口。

    # 开启防火墙
    sudo systemctl start firewalld.service 
    # 开放80端口
    sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
    # 重启防火墙
    sudo systemctl restart firewalld.service
    # 重置防火墙配置
    sudo firewall-cmd --reload
    
  • 安装数据库mariadb

    # 安装mariadb
    yum -y install mariadb mariadb-server
    # 启动数据库
    sudo systemctl start mariadb
    # 设置数据库开机启动
    sudo systemctl enable mariadb
    # 设置数据库密码等
    mysql_secure_installation
    

CentOS安装python 3.7

我们可以使用python --version来查看当前系统的python版本,我当前的python版本为2.7.5

  • 安装python 3.7

    # 返回主目录,并新建python3文件夹
    cd ~
    mkdir python3
    cd python3
    # 安装python 3 依赖环境
    sudo yum -y install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel zlib-devel libffi-devel MySQL-python mysql-devel
    # 下载python 3.7
    wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz
    # 解压python
    tar -zxvf Python-3.7.3.tgz
    # 配置python3安装目录
    cd /usr/local
    sudo mkdir python3
    cd ~/Python-3.7.3
    ./configure --prefix=/usr/local/python3/
    # 编译python,make命令可能需要时间很长
    make
    # 安装
    sudo make install
    

    至此python 3.7已经安装成功了,可以cd /usr/local/python3/目录下查看是否安装成功,但是此时在控制台输入python3是没有该命令的,还需要做以下操作:

      sudo ln -s /usr/local/python3/bin/python3 /usr/bin/python3
      sudo ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
    

    此时python3和pip3都可以在命令中找到了,最后安装一个mysqlclient

    sudo pip3 install mysqlclient
    

安装Django

  • 安装Django以及测试

    # 安装django
    sudo pip3 install django
    sudo ln -s /usr/local/python3/bin/django-admin /usr/bin
    cd ~
    sudo mkdir Test
    cd Test
    # 创建Django测试工程
    sudo django-admin startproject MyTest
    cd MyTest
    # 启动Django
    sudo python3 manage.py runserver 0.0.0.0:80
    

    此时启动Django应该会报错,需要修改settings.py里面的一些配置,settings.py修改数据库配置

    ALLOWED_HOSTS = []  ->> ALLOWED_HOSTS = ['*']
    # 数据库修改
    DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '自己新建的数据名',
        'USER': 'root',
        'PASSWORD': '配置数据库时的密码',
        'HOST': 'localhost',
        'PORT': '3306',
        }
    }
    

    再次启动Django sudo python3 manage.py runserver 0.0.0.0:80,本机访问服务器地址,可以看到Django的图标等,表明Django的环境已经搭建成功了

配置uwsgi和nginx

  • 安装uwsgi和nginx

    sudo pip3 install uwsgi
    sudo yum -y install nginx
    sudo ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi3
    
  • 配置uwsgi和nginx
    修改项目中的settings.py文件,关闭DEBUG模式,修改静态文件链接,在settings.py中STATIC_URL下添加静态链接文件位置,并在项目中建立静态文件夹static

    # 添加静态链接文件位置,该文件夹需要在服务器上创建
    STATIC_ROOT = os.path.join(BASE_DIR, '../collected_static')
    STATICFILES_DIRS = (
        os.path.join(BASE_DIR, 'static'),
    )
    

    在项目中新建uwsgi配置文件uwsgi.ini并填入以下内容,并根据自身项目修改,在项目目录新建uwsgi文件夹

    [uwsgi]
    socket = 127.0.0.1:8000 # uwsgi监听端口
    chdir = ***** # 自身项目在服务器上地址
    module = *****.wsgi #自身项目中的wsgi
    master = true 
    processes = 1 
    threads = 2  # 线程数
    max-requests = 2000 # 最大请求
    chmod-socket = 664
    vacuum = true 
    # uwsgi文件存放地址
    stats = %(chdir)/uwsgi/uwsgi.status
    pidfile = %(chdir)/uwsgi/uwsgi.pid 
    daemonize = %(chdir)/uwsgi/uwsgi.log
    

    在服务器中链接静态文件,如果看到多少文件链接成功则配置成功

    sudo python3 manage.py collectstatic
    

    修改nginx配置,sudo vim /etc/nginx/nginx.conf,修改server配置

    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    
    server {
        listen 80;
        server_name localhost;
        charset utf-8;
    
        location / {
          # 监听端口和uwsgi相同
          uwsgi_pass 127.0.0.1:8000;
          include /etc/nginx/uwsgi_params;
        }
    
        location /static {
          #uwsgi配置的静态链接的地址
          alias ******/collected_static/; 
        }
    
        error_page 404 /404.html;
            location = /40x.html {
        }
    
        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }
    

    上面已经配置完成了,下面启动项目

    # 到项目目录下
    sudo uwsgi3 --ini uwsgi.ini
    # 启动nginx
    sudo systemctl start nginx 
    

    如果以上两个都没有报错表面已经配置成功了,可以到本地机器上通过IP访问看下是否成功 .
    如果更改了代码,需要重新启动uwsgi3

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

推荐阅读更多精彩内容