Centos7+uwsgi+Nginx+Django进行项目部署

1. 配置系统环境

yum -y install  gcc  gcc-c++
yum -y install wget  
yum -y install zlib zlib-devel  openssl  openssl-devel ncurses-devel sqlite sqlite-devel bzip2-deve readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
yum -y install epel-release
yum -y install libffi-devel  #编译Python时候,如果缺少,会导致pip安装不成功
yum install psmisc  #帮助管理/proc目录,fuser,killall,pstree等

2. 源码安装Python3.7.4 && Django

  • cd /opt 进入opt目录
  • 使用wget命令下载压缩包
wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz
tar -zxvf Python-3.7.4.tgz
cd Python-3.7.4
./configure --prefix=/usr/local/python3
make && make install
  • 创建软连接
cd ~
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
  • 给python3安装django
pip install django
建立软连接
ln -s /usr/local/python3/bin/django-admin /usr/bin/django-admin
  • 建立python项目文件夹与虚拟环境文件夹
cd /data/
mkdir wwwroot #项目文件夹
mkdir env #虚拟环境文件夹
  • 本地导出项目的依赖
pip freeze > ./requirements.txt
  • 上传自己的项目并测试
cd /data/env
virtualenv --python=/usr/bin/python3 mysite(虚拟环境名)#创建虚拟环境
soure /data/env/mysite/bin/activate #激活虚拟环境
pip install -r requirements.txt #下载项目依赖
python3  manage.py runserver

3. 安装配置uwsgi

soure /data/env/mysite/bin/activte #使用python虚拟环境
pip instll uwsgi #pip直接下载
  • 准备uwsgi服务器配置文件
  • 在manage.py的同级目录下,新建一个uwsgi.xml文件,配置此文件
<uwsgi>  
  <socket>127.0.0.1:8000</socket> <!-- 内部端口,自定义 -->
  <chdir>/data/wwwroot/demo/</chdir> <!-- 项目路径 -->            
  <module>demo.wsgi</module>  <!-- mysite为wsgi.py所在目录名-->
  <processes>4</processes> <!-- 进程数 -->    
  <daemonize>uwsgi.log</daemonize> <!-- 日志文件 -->
</uwsgi>

4. 安装配置Nginx

  • 安装
# 1.进入home目录
cd /home  
# 2.下载nginx
wget http://nginx.org/download/nginx-1.13.7.tar.gz
# 3.解压
tar -zxvf nginx-1.13.7.tar.gz
# 4.进入解压后的nginx-1.13.7文件夹
cd nginx-1.13.7
# 5.编译安装
./configure
make && make install
  • ginx一般默认安装好的路径为/usr/local/nginx 在/usr/local/nginx/conf/中先备份一下nginx.conf文件,以防意外。
cd /usr/local/nginx/conf
cp nginx.conf nginx.conf.bak
  • 然后打开nginx.conf,把原来的内容删除,直接加入以下内容:
vim nginx.conf
events {
   worker_connections  1024;
}
http {
   include       mime.types;
   default_type  application/octet-stream;
   sendfile        on;
   server {
       listen 80;
       server_name  118.25.19.221; #改为自己的域名,没域名修改为127.0.0.1:80
       charset utf-8;
       location / {
          include uwsgi_params;
          uwsgi_pass 127.0.0.1:8000;  #端口要和uwsgi里配置的一样
          uwsgi_param UWSGI_SCRIPT demo.wsgi;  #wsgi.py所在的目录名+.wsgi
          uwsgi_param UWSGI_CHDIR /data/wwwroot/demo/; #项目路径
         
       }
       location /static/ {
       alias /data/wwwroot/demo/static/; #静态资源路径
       }
   }
}

5. 启动服务

  • 进入项目目录下将settings.py中:
ALLOWED_HOSTS = ['*']
DEBUG = False
  • cd /data/项目
  • 启动 uwsgi
uwsgi --ini uwsgi.ini
uwsgi:  uwsgi -x demo.xml
  • cd /usr/local/nginx/sbin/
  • 启动nginx:
./nginx

6.常用命令

关闭nginx&&uwsgi

killall -9 nginx  
killall -9 uwsgi

查看服务器正在运行的端口

netstat -ntpl

在这里插入图片描述
关闭8000端口(端口被占用)

sudo fuser -k 8000/tcp        
#启动Django项目,如果出现Error:That port is already in use.   关掉8000的进程就好

重启nginx

nginx -t #检查nginx配置是否正确
nginx -s reload  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值