前言

关于Django的部署,本人也踩了很多坑,这篇文章一步一步教你怎么进行部署,只需要你按照我的步骤来就OK了!这里我们使用的服务器是一个全新的服务器,没有安装任何东西。

基础环境搭建步骤

★ 注意:下面的步骤都需要在root权限下进行

一、更新系统软件包

yum update -y

二、安装软件管理包和可能使用的依赖

yum -y groupinstall "Development tools"yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc libffi-devel

三、下载Pyhton3到/usr/local 目录

cd /usr/localwget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz

★ 这里我们安装的Python是3.6.6版本,版本可以自己选择,如果版本不同,后面相应的代码也会不同!!!

解压python包

tar -zxvf Python-3.6.6.tgz

进入 Python包的路径

cd Python-3.6.6

编译安装到自己指定路径-/usr/local/python3

./configure --prefix=/usr/local/python3

安装python3

make
make install

安装完成之后,建立软链接,添加变量,这样的好处是方便我们在终端中能够直接使用python3

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

Python3安装完成之后pip3也一块安装完成,不用再单独安装 这里给pip3也建立软链接

ln -s /usr/local/python3/bin/pip3.6 /usr/bin/pip3

四、查看是否成功安装Python3和pip3

python3 -V
pip3 -V

五、安装virtualenv

★ 建议大家都安装一个virtualenv,方便不同版本项目管理。虚拟环境这块大家可以自行百度进行了解,当然也可以直接按照我下面的步骤进行

pip3 install virtualenv

我们也给它建立软链接

ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv

安装成功在根目录下建立文件夹,主要用于存放env,当然项目你也可以创建一个文件夹存放。我的项目是存放在/~/blog中的,影响不大,后面自己可以进行相关修改(我会注明)

mkdir -p /data/env

六、切换到/data/env/下,创建虚拟环境。

virtualenv --python=/usr/bin/python3 djangoenv

这里的djangoenv名称可以自己定义但是后面步骤一定要跟你所定义的名称相同,然后进入/data/env/djangoenv/bin

启动虚拟环境:

source activate

进入之后,你就会发现下面红框中的内容就是自己定义的名称

七、虚拟环境里用pip3安django和uwsgi

pip3 install django (需要指定安装和你项目相同的版本)
pip3 install uwsgi

★ uwsgi要安装两次,一次在虚拟环境中,另一次退出虚拟环境进行安装

给uwsgi建立软链接

ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi

本地Django项目部署到服务器

上面的步骤已经将整个大致的环境安装好了,接下来我们就需要把自己本地的项目搬运上来。

一、备份本地数据库。使用Mysql数据库,要先在本地Mysql里备份导出数据,然后在服务器上安装Mysql数据库

关于在centos中安装Mysql,我会在下篇文章中写,敬请关注(里面的坑比较多,我都会总结好的)

二、在项目目录下把当前的环境依赖包导出到requirements.txt文件

pip freeze > requirements.txt

★ 注意:这里是在自己本地上进行的,导出你整个项目需要的依赖包

三、把项目源码压缩打包。

四、把项目上传到服务器对应的目录里,解压。

这里我使用的是Fileziila软件进行上传的,大家可以自己去下载相关的ftp软件,把自己项目上传到服务器。

在服务器中解压,可以先安装支持ZIP的工具

yum install -y unzip zip

解压zip文件

unzip 文件名.zip

五、创建新的虚拟环境(参照上面基础环境步骤中的第六步)

六、进入虚拟环境,然后进入项目安装目录requirements.txt里的依赖包。

pip3 install -r requirements.txt

七、导入数据库到服务器。(Mysql)

关于数据库的导入步骤:

# 进入数据库
mysql -u root -p
# 创建与项目中相应的名称的数据库
create database kulsblog;use kulsblogsource /你导入sql文件的目录地址

八、通过python3 manage.py runserver 运行一下项目,如果能正常启动则进行下一步,不能正常运行往上检查。

这里需要注意使用python3来执行manage.py,否则会出现报错情况!

九.配置uwsgi文件(重点!!!)

我的网站项目路径是/root/blog/kuls_blog,在项目根目录下创建 项目名称.xml (例如我的就是 kuls_blog.xml) 编辑该文件:

<uwsgi>    <socket>127.0.0.1:8000</socket> <!-- 内部端口,自定义 --> <chdir>/root/blog/kuls_blog</chdir> <!-- 项目路径 -->            <module>kuls_blog.wsgi</module>  <!-- mysite为wsgi.py所在目录名--> <processes>4</processes> <!-- 进程数 -->     <daemonize>uwsgi.log</daemonize> <!-- 日志文件 -->
</uwsgi>

★ 注意里的kuls_blog,这个是wsgi.py所在的目录名。大家记得仔细看我的注释进行填写!!!

十、安装nginx和配置nginx.conf文件

进入home目录,执行下面命令,我这里安装的是1.13.7版本。

cd /home/wget http://nginx.org/download/nginx-1.13.7.tar.gz

下载完成后,执行解压命令:

tar -zxvf nginx-1.13.7.tar.gz

进入解压后的nginx-1.13.7文件夹,依次执行以下命令:

./configure
make
make install

nginx一般默认安装好的路径为/usr/local/nginx

在/usr/local/nginx/conf/中先备份一下nginx.conf文件,防止我们出错。

cp nginx.conf nginx.conf.bak

然后打开nginx.conf,把原来的内容删除,直接加入以下内容:

events {worker_connections  1024;
}
http {include       mime.types;default_type  application/octet-stream;sendfile        on;server {listen 80;server_name  127.0.0.1:80; #改为自己的域名,没域名修改为127.0.0.1:80charset utf-8;location / {include uwsgi_params;uwsgi_pass 127.0.0.1:8000;  #端口要和uwsgi里配置的一样uwsgi_param UWSGI_SCRIPT kuls_blog.wsgi;  #wsgi.py所在的目录名+.wsgiuwsgi_param UWSGI_CHDIR /root/blog/kuls_blog; #项目路径}location /static/ {alias /root/blog/kuls_blog/static/; #静态资源路径}}
}

★ 大家一定仔细看每个参数后面的注释,这里容易出错!!!这里的参数一定要和之前配置的xml文件相对应

进入/usr/local/nginx/sbin/目录 执行 ./nginx -t 命令先检查配置文件是否有错,没有错就执行以下命令:

./nginx

终端没有任何提示就证明nginx启动成功。

★ uwsgi和Nginx两个配置,在整个部署里面是非常非常重要的,如果出现报错,一定往上面翻一翻,看看有没有哪个步骤出现问题。

重点

如果修改了Django文件或者一些其他的配置,一定要重启uwsgi和Nginx,否则不会生效!

#查看Uwsgi进程
ps -ef|grep uwsgi
#用kill方法把uwsgi进程杀死,然后启动uwsgi
killall -9 uwsgi
#启动方法
uwsgi -x mysite.xml#Nginx平滑重启方法
/usr/local/nginx/sbin/nginx -s reload

上面是重启uswgi和Nginx的步骤,大家每次修改之后,调用上面的方法即可。

一些注意事项

如果你的项目中的应用含有静态文件,你需要在setting.py中进行STATIC_ROOT的设置

STATIC_ROOT  = os.path.join(BASE_DIR, 'static')#指定样式收集目录
#或
STATIC_ROOT = '/www/mysite/kuls_blog/static'  #指定样式收集目录

并且执行下面的指令:

python manage.py collectstatic

运行这个命令之后,就会自动把静态文件收集到/static/目录下。

转自:JAVAandPython君

centos daemonize_手把手教你在centos上配置Django项目(超详细步骤)相关推荐

  1. 苹果手机mov文件如何复制到电脑_如何在手机上访问电脑上的文件(超详细步骤) iPhone版...

    之前分享了如何在两台电脑上共享文件,如需访问可点击如下链接: Town-Tree:如何在两台电脑之间共享文件(超详细步骤)​zhuanlan.zhihu.com 如何在安卓手机上访问电脑上的文件,可点 ...

  2. centos sokit_手把手教你在centos上配置Django项目(超详细步骤)

    前言 关于Django的部署,本人也踩了很多坑,这篇文章一步一步教你怎么进行部署,只需要你按照我的步骤来就OK了!这里我们使用的服务器是一个全新的服务器,没有安装任何东西. 基础环境搭建步骤 ★ 注意 ...

  3. 手把手教你在centos上配置Django项目(超详细步骤)

    点击上方"JAVAandPython君",选择"星标"公众号 重磅干货,第一时间送达 小白学Django系列: 小白学Django第一天| MVC.MVT以及D ...

  4. 云原生丨手把手教你使用zabbix监控postgresql数据库(超详细讲解)

    文章目录 一.前言 二.什么是zabbix 三.zabbix安装步骤 四.监控postgresql实现步骤 一.前言 对于运维人员来说,监控是非常重要的,因为如果想要保证线上业务整体能够稳定运行,那么 ...

  5. 手把手教你安装 Centos7.6系统(图文超详细)

    桌面版 Centos7.6系统的安装(图文超详细) ●实验目的: 熟练掌握Centos7.6系统的安装. ●实验环境: VMware虚拟机(推荐最新版本):Centos7.6系统镜像 ●实验步骤: . ...

  6. 手把手教你拿下空间复杂度【下】(超详细)

    文章目录 前言 一.空间复杂度是什么? 二.几个常见情况(就快结束了呢) 情况一 情况二 情况三(最后一个简简单单) 写在后面 前言 这是我第二篇知识点分享向博客,书接上文,这次讲解空间复杂度. 时间 ...

  7. 手把手教你用IDEA上传新项目到gitlab,图文并茂!

    目录 前言 创建gitlab工程 IDEA上传项目 优化的上传方法 前言 我们现在的项目大多都是存放在git.svn这类版本控制系统,所以学会如何把一个新项目放到版本控制系统中是很有必要,下面我就将介 ...

  8. 手把手教你解决宏基笔记本wifi开关故障(超详细)

    宏基笔记本wifi连不上怎么办?别慌,咸鱼给你指点迷津.80%的原因都是你无意中关闭了wifi开关.解决步骤如下图所示:

  9. 手把手教你六类网线水晶头接法,超详细教程

    网线线序 六类网线线序一般为白橙.橙.白绿.蓝.白蓝.绿.白棕.棕.如下图所示 工具介绍 工具①是灰色保护套,其作用是保护水晶头,要在剥线前就套上去 ②就是水晶头了 ③的作用是套在两股网线上,旋转,最 ...

最新文章

  1. Linux Ethercat主站
  2. Kaggle比赛源代码和讨论的收集整理
  3. 第四范式先知平台成为首个通过金融信创适配验证的AI产品
  4. 监控linux终端键盘输入,Linux内核实时监控键盘输入
  5. linux基础知识3
  6. Vue实现仿豆瓣电影
  7. IPC Hi3518EV300开发板——1. Linux系统移植
  8. 海康存储服务器 硬盘红色,海康磁盘阵列存储服务器
  9. win10如何设置保护色保护眼睛
  10. 浅谈京东静态html原理,京东首页前端架构设计.ppt
  11. 20200413 jzoj 普及c组 Loan Repayment
  12. 误删了win10下面的winsock和winsock2
  13. 【免费毕设】JSP旅游网站建设设计与实现(源代码+论文)
  14. 【Jetson-Nano】SD卡重新格式化
  15. CARLA自动驾驶模拟器操作
  16. 2018.07.19【2018提高组】模拟C组
  17. WindowsXP-SP2系统下AMD双核补丁及安装方法!!
  18. 夏时制和Windows
  19. 菜鸟的草缸 篇二:开缸种草篇
  20. 报错:Incorrect string value: ‘\xE5\x90\x83\xE9\xA5\xAD‘ for column ‘msg‘ at row 1

热门文章

  1. linux性能分析top iostat vmstat free,linux 性能篇 -- top用法(示例代码)
  2. React之state总结
  3. React之函数式组件
  4. 友盟渠道统计mysql_cnzz友盟怎么安装网站统计代码监控网站流量
  5. java实训遇到问题解决_「instantiationexception」关于java出现 java.lang.InstantiationException异常的分析与解决方案 - seo实验室...
  6. 语言 ota_新增飞屏功能 ARCFOX αT首次OTA升级
  7. java 封闭实例_不能访问类型…的封闭实例
  8. 计算机应用基础山东省,2019年山东省中等职业学校对口升学考试:计算机文化基础+计算机应用基础模拟试卷...
  9. linux分区 挂盘,linux分区,挂盘,LVM
  10. 编程语言基础 c语言同步教案,C语言程序设计基实验教案.doc