Django 部署到 Cenos7 需要安装大量的依赖包, 有很多坑需要踩, 这里是踩坑后探索出的标准化步骤
实验环境:
腾讯云 centos7
用 centos7.5 镜像创建容器 (这步操作按自己需求来, 不使用 docker 的可以跳过这步)
docker run -t -i --name fangyuanxiaozhan-com -p 9000:9000 CentOS:7.5.1804 /bin/bash
创建名为 fangyuanxiaozhan-com 的容器
将容器的 9000 端口映射到物理机的 9000 端口
推荐使用 CentOS:7.5.1804 这个镜像, 开始我用了最新版的 CentOS 镜像, 安装 lxml 的时候, 报出了内核崩溃的错误, 花了整整一天也没有解决, 最后老老实实换了 CentOS:7.5.1804 的镜像, 问题顺利解决~
安装各种依赖包
- yum -y groupinstall "Development tools"
- yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel SQLite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel gcc automake autoconf libtool make wget
下载 python3.7 源码包
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
解压源码包
tar -xvJf Python-3.7.0.tar.xz
进入源码目录, 并编译安装
- cd Python-3.7.0
- ./configure --prefix=/usr/local/bin/python3
- make
- make install
将 python3 和 pip3 添加到系统环境变量中
- ln -s /usr/local/bin/python3/bin/python3 /usr/bin/python3
- ln -s /usr/local/bin/python3/bin/pip3 /usr/bin/pip3
验证安装效果
- yum install which
- which python3
- which pip3
升级 pip
pip3 install --upgrade pip
安装扩展包
yum install epel-release
安装 python-pip
yum install python-pip
安装 pipenv
pip install pipenv
安装 Node.JS
yum install Node.JS
安装 pm2
NPM install pm2 -g
在 manager.py 的同级目录下, 创建 pm2 运行 django 程序的脚本文件 start.sh
- vi start.sh
- i
- python manage.py runserver 0.0.0.0:9000
- :wq
pm2 运行脚本, 开启 django 服务
pm2 start start.sh
查看服务运行状态
pm2 list
停止服务
pm2 delete start.sh
效果测试 https://fangyuanxiaozhan.com/
小结:
完成以上步骤后, 就可以在物理机的 9000 端口访问到 django 服务了, 如果想在物理机用 nginx 将 9000 端口的服务转发到 80 端口, 可以参考我以前写过的一篇 nginx 配置二级域名
来源: http://www.jianshu.com/p/c640f052648f