Django2.0服务器的零基础完全部署

   此文完全针对小白和零基础,大佬和有经验的司机请直接忽视略过,因为太过啰嗦!打扰了(^_^)Biu~ Biu~  开始~~

                                                                                                                                                                         ———RedPanda

  • 配置环境介绍

本地环境:windows10 home版

Python版本:python3.6

数据库:MySQL5.7

测试服务器商:百度云

服务器环境:Centos7.4

服务器端环境搭建:

Python3.6+virtualenv+MySQL5.7+Django2+uwsgi+Nginx+Supervisor+Memcached+redix

  • 本地开发环境(本文python一律默认3.6)
  1. 安装python && 安装pip  &&安装虚拟环境virtualenv以及virutalenvwrapper
  1. 安装python3.6(自带pip)

登录官网https://www.python.org/ downloads 选择操作系统对应版本下载

选择Customize installation 勾选Add Python 3.6 to PATH(很重要)

Optional Features 选择相应选安装,建议小白全选

自定义选择python安装路径(建议软件D盘,别总安在C盘“不卡臣妾做不到”)

完成安装后,进入cmd  输入 python -V  查看安装是否成功

安装完成后可以对pip 进行升级:pip install --upgrade pip

更改pip 的更新源为国内源镜像(建议清华https源,更多源后边有介绍)

在当前用户目录下创建pip文件夹

C:\Users\Administrator\pip

新建pip.ini文件,写入内容如下:

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple


[install]

trusted-host = https://pypi.tuna.tsinghua.edu.cn

再次升级pip 提示为 更换完成(永久可再换源)

Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple

  1. 安装虚拟环境virtualenv以及virutalenvwrapper

pip3 install virtualenv (本环境仅有python3.6 pip 和pip3效果相同)

pip3 install virtualenvwrapper-win

更改虚拟环境的默认安装位置(方便统一管理,“C盘表示妾窃欢喜”)

我的电脑-“属性”-“高级”-“环境变量”-“系统变量”

更改或增加:变量WORKON_HOME  值:D:\Env

  1. 安装MySQL5.7+Navicat
  1. 国内镜像下载mysql对应版本

(“官网能让你地老天荒~眼泪汪汪,是个Bad boy”)

推荐对应windows版本的zip下载(更多参考http://www.svlik.com/1512.htmlhttps://mirrors.ustc.edu.cn/mysql-ftp/Downloads/MySQL-5.7/

https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-5.7/

mysql-5.7.28-winx64.zip安装教程

  解压--修改名为mysql-5.7.28(拷贝至D盘下)

  配置环境变量:

   我的电脑-“属性”-“高级”-“环境变量”-“系统变量”-双击“Path”-将mysql的路径“D:\mysql-5.7.28\bin”添加进去

  mysql-5.7.28新建my.ini 文件

  [mysql]

  # 设置mysql客户端默认字符集

  default-character-set=utf8

  [mysqld]

  # 设置3306端口

  port = 3306

  # 设置mysql的安装目录(自解压位置)

  basedir=F:\IT_zhengqing\MySQL\mysql-5.7.24-winx64

  # 设置mysql数据库的数据的存放目录(自定义位置)

  datadir=F:\IT_zhengqing\MySQL\mysql-5.7.24-winx64\data

  # 允许最大连接数

  max_connections=200

  # 设置mysql服务端默认字符集

  character-set-server=utf8

  # 创建新表时将使用的默认存储引擎

  default-storage-engine=INNODB

 

  mysql 初始化:(可以不完全按照这个步骤来“条条大路喊翠花”)

在mysql的bin目录下 win10选择文件右击powershell   执行 mysqld --initialize-insecure

  安装mysql服务:mysqld -install

  启动服务:net start mysql

  测试: mysql -u root -p  来启动mysql的命令行窗口

  执行修改密码:set password = password('单引号里输入你的新密码,一般设置为root');

  查看数据库:show databases; 

  在navicat中测试连接

  1. 安装navicat:

  <1>安装Navicat软件

  <2>和谐:patchNavicat

         <3>连接数据库测试

  1. 创建virtualenv虚拟环境专用文件夹例如:(cmd)

C:\Users\Administrator>d:

D:\>cd Env

D:\Env>dir (查看文件夹下的目录列表)

创建虚拟环境:mkvirtualenv djangocs

补充两条指令:(其他指令用到再补充)

deactivate 退出虚拟环境

workon djangocs   进入虚拟环境

  1. 项目用到的环境安装配置(详情见附录)(视个人项目所需安装)

进入虚拟环境下 workon djangocs  查看环境列表 pip list

  1. 安装memcached 和redis
  1. 安装memcached:(这里选择1.4.4版本 1.4.5版及后操作不同)

<1> 下载memcached: http://static.runoob.com/download/memcached-win64-1.4.4-14.zip

   更多参考:https://www.runoob.com/Memcached/window-install-memcached.html

<2> 解压(建议拷贝至D盘文件夹下)

<3>以管理员的身份打开cmd,并进入memcached 文件夹下

<4>安装memcached.exe -d install

<5>启动memcached:memcached.exe -d start

<6>telent 测试(其默认端口是11211)

确保已启动telnet
服务控制面板 -> 程序 -> 启用或关闭Windows功能 -> 勾选Telnet客户端 -> 确定

 

查看本地回显信息set localecho

添加数据set username 0 60 7

  1. 安装redis

<1>下载(https://github.com/MicrosoftArchive/redis/releases

<2>解压,管理员身份cmd进入文件夹下(建议拷贝D盘)

<3>将redis服务安装成windows服务

redis-server --service-install redis.windows.conf

<4>启动redis服务:redis-server --service-start

<5> cmd 测试(默认端口 6379)在redis文件目录下

redis-cli.exe -h 127.0.0.1 -p 6379

<6>写入和读取测试

set username "djangocs1"

get username

<7>补充指令(其他用到再补充)

设置密码:CONFIG SET requirepass “root”

              auth root

清空密码:CONFIG SET requirepass “”

<8>Redis 可视化管理工具RedisStudio的安装

       <1. 下载 https://github.com/cinience/RedisStudio/releases

       <2. 安装并添加本地redis

  1. 安装前端环境(随项目开发需求,非必须,可略过)
  1. nvm安装

<1> 下载:https://github.com/coreybutler/nvm-windows/releases

<2> 安装:(建议安装D盘,求不要独宠C盘,要雨露均沾^*_*^)

<3>配置环境变量:我的电脑->属性->高级系统设置->环境变量->系统环境变量->Path 将nvm的路径新建添加即可

<4>测试  打开cmd 输入 nvm 查看命令的执行情况

<5> 改变nvm的更新下载源(改为国内源镜像)

nvm node_mirror https://npm.taobao.org/mirrors/node/

nvm npm_mirror https://npm.taobao.org/mirrors/npm/

                       <6> nvm常用命令:

                                   nvm install node:安装最新版的node.js。nvm i == nvm install。

nvm install [version]:安装指定版本的node.js 。

nvm use [version]:使用某个版本的node。

nvm list:列出当前安装了哪些版本的node。

nvm uninstall [version]:卸载指定版本的node。

nvm node_mirror [url]:设置nvm的镜像。

nvm npm_mirror [url]:设置npm的镜像。

  1. Node+npm安装

<1> 安装:nvm install 6.4.0

(教程说最新版的坑很多,建议这个版本, 求指教)

 

<2>指定nvm 使用的版本: nvm use 6.4.0

 

<3>npm的指令:

npm install express          # 本地安装(npm指令所在的目录下)

npm install express -g          # 全局安装(放在npm的安装目录)

npm uninstall [package]         # 卸载包

npm update [package]           # 更新包

npm search [package]            # 搜素包

                       <4> 使用淘宝镜像 可以使用cnpm来安装包(指令cnpm 同上速度较快)

                            npm install -g cnpm --registry=https://registry.npm.taobao.org

                             

1、gulp安装(建议npm的操作,全都在项目的目录来完成)

<1> 创建本地包管理环境:npm init (在项目目录文件夹下默认来就行)

   package.json是用来记录你当前这个项目依赖的包(npm install

<2> 全局安装gulp :npm install gulp -g (cnpm install gulp -g)

<3> 本地安装:npm install gulp --save-dev(在项目目录文件夹下)

<4> 创建gulp任务:在项目根目录下创建gulpfile.js文件;

<5> 处理css任务:cnpm install gulp-cssnano --save-dev

<6> 处理js任务插件:cnpm install gulp-uglify --save-dev

<7> 合并多文件插件:cnpm install gulp-concat --save-dev

<8> 压缩图片插件:cnpm install gulp-imagemin --save-dev

<9> 压缩图片缓存插件:cnpm install gulp-cache --save-dev

<10> 自动刷新浏览器插件:cnpm install browser-sync --save-dev

<11> Sass语法插件:cnpm install gulp-sass --save-dev

<出错处理>:出错后先再次安装和执行,未解决再找其他方法!

在已完成的项目中执行cnpm install  npm install  (可反复安装几次直到)

至此前端开发的基本环境安装完毕!

  1. 确认项目没有bug(设置`ALLOW_HOST`为你的域名,以及ip地址。

设置`DEBUG=False`,避免如果你的网站产生错误,而将错误信息暴漏给用户。)

LANGUAGE_CODE='en-us'

TIME_ZONE = 'Asia/Shanghai'

USE_I18N = True

USE_L10N = True

USE_TZ = False

STATIC_URL = '/static/'

STATIC_ROOT= os.path.join(BASE_DIR,'static_dist')

STATICFILES_DIRS = [os.path.join(BASE_DIR,'static')]

  1. 进入项目虚拟环境下pip3 freeze > requirements.txt`将当前环境的包导出到`requirements.txt`文件中,方便在部署的时候安装。
  2. 配置好Git代码服务器(建议码云):创建新的代码仓库
  3. 安装Git,将项目上传代码服务器

代码简化:(使用这个 遇见问题再看下面的步骤,标红文字比较重要)

    * git init          * git remote add origin xxx.git

    * git add -A       * git commit -m 'first commit'

    * git pull origin master --allow-unrelated-histories

         * git push origin master

  1. 创建本地仓库(新建项目时去掉readme的选项,否则存在问题)

在本地项目目录下点击右键,选择Git Bash Here,输入git init命令

然后依次输入以下命令进行初始化:git add .    touch README.md

  1. Git全局设置

git config --global user.name "XXX"(你的名字)

git config --global user.email XXXXX@qq.com(你的邮箱)

  1. 输入以下命令进行添加所有文件:

git add -A

  1. 输入以下命令进行提交注释:

git commit -a -m "first commit”

  1. 输入以下命令进行初次建库,需要与远程仓库关联:

git remote add origin https://gitee.com/Yain/Djangocs1.git

            若报错:git remote rm origin

  1. 把两段不相干的分支进行强行合并‘

git pull origin master --allow-unrelated-histories’

  1. 输入以下命令进行将代码仓库上传到码云:

git push origin master

  1. 如果遇到问题:(初次使用的仓库,直接第一步就行)

<1> 若没有原仓库没有代码,可以使用强推 git push -f origin master

<2> 先把Git的代码fetch到本地然后merge再push

          git fetch

<3> 提交当前变化:git commit -a -m "two commit”

<4> 本地生成一个ReadMe文件

   git pull --rebase origin master     本地生成ReadMe文件

git push origin master

  1. 至此本地代码即上传至代码服务器的码云Gitee上了

二、服务器端环境的搭建

       1、安装centos系统  这里测试的是7.4 64bit  百度云(xshell连接)

              使用xshell连接百度云服务器(云服务无须更改centos源)

              修改yum源为阿里云(一般可以修改,但是建议先不修改,更新很慢的时候再说)

cd /etc/yum.repos.d

mv CentOS-Base.repo CentOS-Base.repo.bak
wget http://mirrors.aliyun.com/repo/Centos-7.repo
mv Centos-7.repo CentOS-Base.repo
yum clean all && yum makecache && yum update

       2、安装python环境(一般自带2.7)

              安装python3 和 pip3  并升级

              安装EPEL和IUS软件源

              yum install epel-release -y

yum install https://centos7.iuscommunity.org/ius-release.rpm -y

安装Python3.6

yum install python36u -y

yum install python36u-devel -y

创建python3连接符(安装完成后查看相应文件夹已有对应文件)

ln -s /bin/python3.6 /bin/python3

(或ln -s /usr/bin/python3.6 /usr/bin/python3)

安装pip3

yum install python36u-pip -y

创建pip3 连接符(安装完成后查看相应文件夹已有对应文件)

ln -s /bin/pip3.6 /bin/pip3

升级pip3

pip3 install --upgrade pip (建议关闭窗口或重启一下)

pip3 --version

       4、更改pip的源:(永久)(安装很慢的时候再说,先不更新)

              临时:pip install  <包名> -i http://pypi.douban.com/simple

              在linux下永久改变源的镜像地址:

              在用户目录下新建 .pip/pip.conf, 然后在文件中添加如下代码:

              mkdir ~/.pip                 vim ~/.pip/pip.conf (阿里云服务器已配置好)

              输入:(建议使用清华源,豆瓣的我测试不太好用)

[global]

timeout = 6000

index-url = https://pypi.tuna.tsinghua.edu.cn/simple

trusted-host = pypi.tuna.tsinghua.edu.cn

[global]

index-url = https://pypi.doubanio.com/simple/

[install]

trusted-host = pypi.doubanio.com

timeout = 6000

其它源:

              (1)阿里云 http://mirrors.aliyun.com/pypi/simple/

(2)豆瓣http://pypi.douban.com/simple/

(3)清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/

(4)中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/

(5)华中科技大学http://pypi.hustunique.com/

     

若遇到pip3 运行报错()

则 vim /usr/bin/pip3

from pip import __main__

if __name__ == '__main__':

    sys.exit(__main__._main())

       5、安装`virtualenv`以及`virutalenvwrapper`。并创建虚拟环境。

              * pip3 install virtualenv

           * pip3 install virtualenvwrapper

              确认virtualenvwrapper.sh 和 python的位置 cd /usr/bin下查看

              whereis virtualenvwrapper.sh (记录下地址)

            * vim ~/.bashrc 进入文件中,填入以下几行代码:

              VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3

              export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3

export WORKON_HOME=$HOME/.virtualenvs

source /usr/local/bin/virtualenvwrapper.sh

         * source ~/.bashrc

              2. 使用指定Python环境新建(默认已被设置使用python3)

mkvirtualenv -p /usr/bin/python3 my_virtual

        

6、安装Git

       1> 查看系统是否已经安装git git --version

       2> yum安装Git :yum install -y git  补充:卸载git: yum remove git

7、安装openSSH(云服务器不用安装):

       1> 查看是否已安装: rpm -qa openssh* yum remove openssh-* 卸载多余)

       2> 安装yum install -y openssl openssh-server

       3> vim打开配置文件/etc/ssh/sshd_config

       PermitRootLoginRSAAuthenticationPubkeyAuthentication 设置为yes

8、安装mysql(指定版本安装)

       1> 查看是否安装mariadb : rpm -qa | grep mariadb

  1. 卸载mariadb:rpm -e --nodeps mariadb-libs-5.5.56-2.el7. .x86_64     

yum remove mariadb-libs.x86_64

3>cd /usr/local/src 进入文件夹下  下载和安装mysql包(5.7)

(下载速度可以的话就用这个)

       wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

              yum -y install mysql57-community-release-el7-10.noarch.rpm

              yum -y install mysql-community-server

       方法二:(不建议使用,只是提供另外一个方案,还有离线方法,百度很多)

wget -i -c https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-5.7/mysql-community-common-5.7.28-1.el7.x86_64.rpm

       wget -i -c https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-5.7/mysql-community-libs-5.7.28-1.el7.x86_64.rpm

       wget -i -c https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-5.7/mysql-community-client-5.7.28-1.el7.x86_64.rpm

       wget -i -c https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-5.7/mysql-community-server-5.7.28-1.el7.x86_64.rpm

       分别依次安装各个安装包

       rpm -ivh mysql-community-common-5.7.28-1.el7.x86_64.rpm

       rpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpm

       rpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpm

       rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm

       测试一下:yum -y install mysql-community-server

       这种方式下载快,安装也快,也适合更换版本,只需要在镜像源库查找一下就行!

       4> 启动mysql服务 : systemctl start mysqld   systemctl status mysqld(查看状态)

        重启:systemctl restart mysqld  开机启动systemctl enable mysqld

        重载所有修改过的配置文件:systemctl daemon-reload

        先修改配置文件,后设置密码:vim /etc/my.cnf (可以先不做这步)

        character_set_server=utf8

       5> 获取原始默认密码 : grep "password" /var/log/mysqld.log 

       6> 进入数据库:mysql -u root -p

       7> 修改密码:alter user 'root'@'localhost' identified by 'Root!!2019'; (设置你的密码)

       8> 刷新权限:

              flush privileges;

           root用户外部ip能访问,使用下面语句:    

           CREATE USER 'root'@'%' IDENTIFIED BY ‘'Root!!2019”;

           grant all on *.* to 'root'@'%' identified by ''Root!!2019”;

              刷新权限:flush privileges;

  1. 重启mysql服务进行验证测试

systemctl restart mysqld

systemctl status mysqld

创建数据库:CREATE DATABASE Djangocs1;

查看数据库:show databases;

新建表:CREATE TABLE xxxx();

查看表:show tables;

查看端口号:netstat -anp

  1. 查询设置的字符集:

show variables like "%character%";show variables like "%collation%";

  1. 可以利用本地的Navicat链接查看

               SQL 语句都是不区分大小写的,但是出于严谨,而且便于区分保留字(保留字(reserved word):指在高级语言中已经定义过的字,使用者不能再将这些字作为变量名或过程名使用。)和变量名,我们把保留字大写,把变量和数据小写。

将项目代码配置中的服务器的mysql等信息修改后再次提交至码云

步骤不限于:(防止项目setting信息与数据库不同)

git init

git remote add origin https://gitee.com/xxxxx/xxxxx.git

git add . (git add -A)

git commit -m "mysql commit" (指定版本的改变)

git push -u origin master -f (强制推送)

安装pip3 install mysqlclient 出错

解决方案:(我这里是这样子)

yum install gcc mariadb-devel

pip3 install mysqlclient

9-1、安装memcached 和redis

  1. 安装memcached(默认端口11211)

<1>安装依赖包:yum install libevent libevent-devel

<2>安装memcached:yum install Memcached

<3>查看安装位置:whereis Memcached (/usr/bin/memcached)

<4>参数式启动:/usr/bin/memcached -u root -m 1024 -p 11211 -d start

<5>查看是否启动成功:ps aux|grep memcached

<6>其他指令:/bin/systemctl start memcached.service

/bin/systemctl stop memcached.service

设置开机自启动systemctl enable memcached.service

取消开机自启动:systemctl disable mysqld.service

 

启动参数的介绍

-d选项是启动一个守护进程,(在后台运行)

-m是分配给Memcache使用的内存数量,单位是MB,

-u是运行Memcache的用户,这里是root,

-l是监听的服务器IP地址,如果有多个地址的话,

-p是设置Memcache监听的端口,最好是1024以上的端口,

-c选项是最大运行的并发连接数,默认是1024,按照服务器的负载量来设定,

-P是设置保存Memcache的pid文件,也可以启动多个守护进程,不过端口不能重复。

    2> 安装redis

        <1> 安装: yum install redis

        <2> 安装epel仓库:yum install epel-release

        <3> 启动redis服务:systemctl start redis

        <4> 查看启动状态:systemctl status redis

        <5> 查看redis进程:ps -ef | grep redis

        <6> 其他指令:停止服务 systemctl stop redis

            重启服务: systemctl restart redis

            设置开机自启动:systemctl enable redis

            查看端口占用情况:netstat -tlnp|grep 80

        <7> 设置redis远程连接和访问密码:

            vi /etc/redis.conf

            修改bind 127.0.0.1(一般注销就好)

            修改保护模式为no: protected-mode no

            修改端口号: port 6039

            修改密码:requirepass 123456

            保存退出后 重启redis

        <8> 进入redis客户端:redis-cli -h 127.0.0.1 -p 6379

            输入用户和密码:(例如 auth 123456)

            输入 info 查看相关信息

            Key * 来查看所有的键

           

9-2、在服务器端建立虚拟环境

    进入SRC文件夹:cd /srv/

    创建虚拟环境目录:mkvirtualenv djangocs1

    将项目代码 从码云代码服务器上 push下来

    建文件夹:mkdir djangocs1

    Cd djangocs1/

    git init

git remote add origin https://gitee.com/xxxxx/xxxxx.git

git pull origin master

输入Gitee用户和密码:(拉取完成)

执行命令:

pip3 install -r requirements.txt ,安装好相应的包。

(可能遇到报错,我觉得是requirements.txt 的包过于老导致的

yum install python-devel

yum install mysql-devel

yum install gcc)再次执行就可以成功!

(wget http://www.percona.com/redir/downloads/Percona-XtraDB-Cluster/5.5.37-25.10/RPM/rhel6/x86_64/Percona-XtraDB-Cluster-shared-55-5.5.37-25.10.756.el6.x86_64.rpm

rpm -ivh Percona-XtraDB-Cluster-shared-55-5.5.37-25.10.756.el6.x86_64.rpm)

10、在mysql中创建相应的数据库 并使用python3 manage.py migrate将迁移文件映射到数据库中

    从而创建相应的表;

    查看数据表的建立(可用Navicat)已创建了新的数据表说明成功了!

   

11、执行python manage.py runserver 0.0.0.0:80   访问下网站所有页 面,确保所有页面都没有错误 在本机上访问你的云服务器,来确认可以被访问到项目页面;

    1. 收集静态文件:python manage.py collectstatic

三、uwsgi配置

1、安装uwsgi

   介绍:uwsgi是一个应用服务器,非静态文件的网络请求就必须通过他完成,uwsgi是使用python编写的,通过pip install uwsgi安装,但必须安装在系统级别的Python环境中,不能装到虚拟环境中

2、使用命令启动项目

    1> 查看虚拟环境的位置:/root/.virtualenvs/djangocs1 如何寻找

cd ~

ls -a

cd cd .virtualenvs/ djangocs1/

pwd 查看路径

通过ps,查看uwsgi相关进程

ps aux|grep uwsgi

列出软件包安装路径 rpm -ql uwsgi

查找文件位置 find / -name "*uwsgi*"

2>  在浏览器中用uwsgi加载项目

uwsgi --http :80 --module Djangocs1.wsgi --virtualenv=/root/.virtualenvs/djangocs1

    3> 在项目路径下创建Djangocs1_wsgi.ini的文件:编写uwsgi配置文件如下:

        [uwsgi]

#使用nginx连接时使用

#socket=0.0.0.0:80

#不用nginx直接当做web服务器使用

http=0.0.0.0:80

# Django相关的配置

# 必须全部为绝对路径

# 项目的路径

chdir=/srv/djangocs1

#wsgi文件路径,在项目底下

wsgi-file=djangocs1/wsgi.py

# Django的wsgi文件

module= zhiliaoketang.wsgi

# Python虚拟环境的路径

home=/root/.virtualenvs/djangocs1

 

# 进程相关的设置

# 主进程

master=true

# 最大数量的工作进程

processes=4

threads=2

pidfile=uwsgi.pid

# 设置socket的权限

chmod-socket=666

# 退出的时候是否清理环境

vacuum=true      

使用命令 uwsgi –ini Djangocs1_wsgi.ini 来启动项目

 

四、安装nginx

    1、添加源(这是个老的源,建议http://nginx.org/en/linux_packages.html#RHEL-CentOS

    rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

2、查看 是否添加成功:yum search nginx

  安装yum install -y nginx

3、编写nginx配置文件(关闭防火墙systemctl stop firewalld)

(在这之前修改uwsgi.ini的文件socket)

/etc/nginx/conf.d`目录下,新建一个文件,叫做`djangocs1.conf`,修改如下:

upstream django {

# server unix:///path/to/your/mysite/mysite.sock; # for a file socket

server 0.0.0.0:9000; # uwsgi的端口 

}

# configuration of the server

 

error_log  /home/wwwroot/nginxerror.log;#错误日志

server {

# the port your site will be served on

listen      80;

# 端口

server_name xxx.xxx.xxx.xxx; # 服务器ip或者域名       

charset     utf-8;

 

# max upload size

client_max_body_size 75M;   # adjust to taste

 

 

# Django media

location /media  {

    alias  /srv/djangocs1/media;  # 指向django的media目录           

}

 

# Django static

location /static  {

    alias  /srv/djangocs1/static_dist;  # 指向django的static目录       

}

 

# Finally, send all non-media requests to the Django server.

location / {

    uwsgi_pass  djangocs1;

    include     /etc/nginx/uwsgi_params; # uwsgi服务

}

}

 

4、测试配置文件是否设置成功,运行命令:` systemctl nginx configtest `(指令失效),

    配置ngnix开机启动:cd到/lib/systemd/system/目录,创建nginx.service文件如下

[Unit]

Description=nginx - high performance web server

Documentation=http://nginx.org/en/docs/

After=network-online.target remote-fs.target nss-lookup.target

Wants=network-online.target

 

[Service]

Type=forking

PIDFile=/var/run/nginx.pid

ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf

ExecReload=/bin/kill -s HUP $MAINPID

ExecStop=/bin/kill -s TERM $MAINPID

PrivateTmp=true

 

[Install]

WantedBy=multi-user.target

 

退出并保存文件,执行systemctl enable nginx.service使nginx开机启动

systemctl start nginx.service
systemctl start nginx  两条指令都可以
重启:systemctl restart nginx.service 
需再次启动uwsgi –-ini  项目文件.ini
使用域名或IP方式浏览器访问测试站点;
502错误的原因是 uwsgi未启动或配置错误
五、安装supervisor配置

    1、在系统级别的python环境中安装pip3 install supervisor

    2、在项目的根目录下创建一个文件叫做`djcs1_supervisor.conf`。

# supervisor的程序名字

[program:dgcs1]

# supervisor执行的命令

command=uwsgi --ini djangocs1_uwsgi.ini

# 项目的目录

directory = /srv/djangocs1

# 开始的时候等待多少秒

startsecs=0

# 停止的时候等待多少秒

stopwaitsecs=0 

# 自动开始

autostart=true

# 程序挂了后自动重启

autorestart=true

# 输出的log文件

stdout_logfile=/srv/djangocs1/log/supervisord.log

# 输出的错误文件

stderr_logfile=/srv/djangocs1/log/supervisord.err

 

[supervisord]

# log的级别

loglevel=info

 

# 使用supervisorctl的配置

[supervisorctl]

# 使用supervisorctl登录的地址和端口号

serverurl = http://127.0.0.1:9001

 

# 登录supervisorctl的用户名和密码

username = djangoroot

password = django1234$

 

[inet_http_server]

# supervisor的服务器

port = :9001

# 用户名和密码

username = djangoroot

password = django1234$

 

[rpcinterface:supervisor]

supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

 

然后使用命令`supervisord -c zlkt_supervisor.conf`运行就可以了。

以后如果想要启动`uwsgi`,就可以通过命令`supervisorctl -c supervisor.conf`进入到管理控制台,然后可以执行相关的命令进行管理:

    * status                # 查看状态

    * start program_name    #启动程序

    * restart program_name  #重新启动程序

    * stop program_name     # 关闭程序

    * reload                # 重新加载配置文件

* quit                  # 退出控制台

 

杀掉以前的supervisor进程(kill -s 9 2533)

 查找 ps aux|grep supervisor

 supervisord -c zlkt_supervisor.conf

进入控制台来管理uwsgi

supervisorctl -c zlkt_supervisor.conf

 

 

六、项目环境安装配置

    0、(仅建议非必须)

    进入虚拟环境的目录下,进入虚拟环境,再来操作pip list或 install操作

     1、指定Django版本安装(例如)

    pip3 install django==2.0.13

       pip3 install mysqlclient (安操作mysql的驱动,仅建议此驱动)

    pip3 install pillow  (服务器保存图片所需要的库环境)

    pip3 install bleach (清理包含html格式字符串的库,指定属性保留或过滤

  pip3 install  python-memcached (用python操作memcached)

   

    pip3  install redis  (python 操作Redis的驱动)

     pip3 install djangorestframework  (安装rest_framework)

     pip3 install django-debug-toolbar (安装DEBUG工具)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值