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)
- 安装python && 安装pip &&安装虚拟环境virtualenv以及virutalenvwrapper
- 安装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
- 安装虚拟环境virtualenv以及virutalenvwrapper
pip3 install virtualenv (本环境仅有python3.6 pip 和pip3效果相同)
pip3 install virtualenvwrapper-win
更改虚拟环境的默认安装位置(方便统一管理,“C盘表示妾窃欢喜”)
我的电脑-“属性”-“高级”-“环境变量”-“系统变量”
更改或增加:变量WORKON_HOME 值:D:\Env
- 安装MySQL5.7+Navicat
- 国内镜像下载mysql对应版本
(“官网能让你地老天荒~眼泪汪汪,是个Bad boy”)
推荐对应windows版本的zip下载(更多参考http://www.svlik.com/1512.html)https://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中测试连接
- 安装navicat:
<1>安装Navicat软件
<2>和谐:patchNavicat
<3>连接数据库测试
- 创建virtualenv虚拟环境专用文件夹例如:(cmd)
C:\Users\Administrator>d:
D:\>cd Env
D:\Env>dir (查看文件夹下的目录列表)
创建虚拟环境:mkvirtualenv djangocs
补充两条指令:(其他指令用到再补充)
deactivate 退出虚拟环境
workon djangocs 进入虚拟环境
- 项目用到的环境安装配置(详情见附录)(视个人项目所需安装)
进入虚拟环境下 workon djangocs 查看环境列表 pip list
- 安装memcached 和redis
- 安装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
- 安装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
- 安装前端环境(随项目开发需求,非必须,可略过)
- 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的镜像。
- 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 (可反复安装几次直到)
至此前端开发的基本环境安装完毕!
- 确认项目没有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')]
- 进入项目虚拟环境下pip3 freeze > requirements.txt`将当前环境的包导出到`requirements.txt`文件中,方便在部署的时候安装。
- 配置好Git代码服务器(建议码云):创建新的代码仓库
- 安装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
- 创建本地仓库(新建项目时去掉readme的选项,否则存在问题)
在本地项目目录下点击右键,选择Git Bash Here,输入git init命令
然后依次输入以下命令进行初始化:git add . touch README.md
- Git全局设置
git config --global user.name "XXX"(你的名字)
git config --global user.email XXXXX@qq.com(你的邮箱)
- 输入以下命令进行添加所有文件:
git add -A
- 输入以下命令进行提交注释:
git commit -a -m "first commit”
- 输入以下命令进行初次建库,需要与远程仓库关联:
git remote add origin https://gitee.com/Yain/Djangocs1.git
若报错:git remote rm origin
- 把两段不相干的分支进行强行合并‘
git pull origin master --allow-unrelated-histories’
- 输入以下命令进行将代码仓库上传到码云:
git push origin master
- 如果遇到问题:(初次使用的仓库,直接第一步就行)
<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
- 至此本地代码即上传至代码服务器的码云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 :
PermitRootLogin,RSAAuthentication,PubkeyAuthentication 设置为yes
8、安装mysql(指定版本安装)
1> 查看是否安装mariadb : rpm -qa | grep mariadb
- 卸载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;
- 重启mysql服务进行验证测试
systemctl restart mysqld
systemctl status mysqld
创建数据库:CREATE DATABASE Djangocs1;
查看数据库:show databases;
新建表:CREATE TABLE xxxx();
查看表:show tables;
查看端口号:netstat -anp
- 查询设置的字符集:
show variables like "%character%";show variables like "%collation%";
- 可以利用本地的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
- 安装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 访问下网站所有页 面,确保所有页面都没有错误 在本机上访问你的云服务器,来确认可以被访问到项目页面;
- 收集静态文件: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工具)
Django2.0服务器的零基础完全部署相关推荐
- 即时通讯音视频开发(0):零基础,史上最通俗视频编码技术入门
[来源申明]本文引用了微信公众号"鲜枣课堂"的<视频编码零基础入门>文章内容.为了更好的内容呈现,即时通讯网在引用和收录时内容有改动,转载时请注明原文来源信息,尊重原作 ...
- 视频编码零基础入门(0):零基础,史上最通俗视频编码技术入门
[来源申明]本文引用了微信公众号"鲜枣课堂"的<视频编码零基础入门>文章内容.为了更好的内容呈现,即时通讯网在引用和收录时内容有改动,转载时请注明原文来源信息,尊重原作 ...
- java9.0.1教学,零基础Java基础教程【9天入门】
零基础Java基础入门教程 中级共14课 本课程将会从零基础学员角度出发,带你9天快速掌握 Java,课程知识点编排循序渐进,能够将每一个知识点落地到实际案例,拒绝"听得懂.不会练.不会敲& ...
- 零基础nodejs部署web网站
nodejs部署微服务 前言 环境 相关文件准备 安装 操作步骤 创建项目 运行项目 测试是否部署成功 项目管理 后台运行脚本 检查nodejs服务是否启动成功 退出后台nodejs的项目 其他 读取 ...
- [教程] openmp/sa-mp联机服务器开发 零基础入门
前言: 开发服务器所需要使用的编程语言Pawn,联机服务器的一切玩法.内容.功能都需要我们自己编写创造,这意味着开始是一片空白. 创造一个成熟的服务器需要一定的技术和编程经验,如果你愿意学习探索,一步 ...
- Hexo+Gitee搭建个人博客 —— 零基础Gitee部署
前言 个人标签: smm -ing Spring Boot -ing 乐于分享 技术交流: Github Gitee kris's blog 正在筹备中!点击预览 博客园 (筹备中) 给我写信 前期准 ...
- 零基础快速入门SpringBoot2.0教程 (二)
一.SpringBoot2.x使用Dev-tool热部署简介:介绍什么是热部署,使用springboot结合dev-tool工具,快速加载启动应用官方地址:https://docs.spring.io ...
- 零基础python从入门到精通 pdf-跟老齐学Python从入门到精通
跟老齐学Python从入门到精通是一款由老齐写作的Python电子书籍.书籍讲述了零基础读者的Python入门教程,内容涵盖了Python的基础知识和初步应用,需要的赶紧下载吧! 目录: 第1季 基础 ...
- 零基础python从入门到精通 pdf-跟老齐学Python从入门到精通.pdf
跟老齐学Python从入门到精通是一款由老齐写作的Python电子书籍.书籍讲述了零基础读者的Python入门教程,内容涵盖了Python的基础知识和初步应用,需要的赶紧下载吧! 目录: 第1季 基础 ...
最新文章
- qq浏览器网页翻译_科研利器 | NCBI网站影响因子与网页翻译插件安装指南
- oracle数据库修改写入状态,【学习笔记】Oracle oradebug 使用oradebug修改数据库SCN方法案例...
- php根据城市获取天气预报,根据浏览者ip获取城市,然后在获取城市天气预报
- vbs枚举磁盘访问磁盘信息
- 根据json对象的某一属性对其进行排序
- HDU4631Sad Love Story
- 【转】为什么博士叫PhD?
- 《Cortex-M0权威指南》之Cortex-M0技术综述
- 为什么软件预算经常会改变和膨胀
- 【7】测试用例设计-等价类分析法
- python编程例子-几个Python小案例,爱上Python编程!
- 2019 双十一京东全民养红包攻略分享
- DVB机顶盒工作原理
- 月薪30k的PHP架构师的成长路线图1.0!
- 【JavaWeb】button自带的reset方法
- Babylon.js 第28章 多面体
- 【学习番外篇】Firefly ROC-RK3328-CC刷Ubuntu18.04+VNC
- 股票涨幅怎么看?在这里这些全告诉你!
- 超详细的【区块链】技术介绍整理(七千余字+九大板块)
- linux下qt实现计算器,QT实现简单计算器功能