Centos7下部署Python项目

Centos7下部署Python项目

一、配置系统环境

  1. yum -y install gcc gcc-c++ 编译的时候
  2. yum -y install wget
  3. 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
  4. yum -y install epel-release
  5. yum -y install libffi-devel 编译Python时候,如果缺少,会导致pip安装不成功
  6. yum install psmisc 帮助管理/proc目录,fuser,killall,pstree等

二、源码安装Python3.7.4 && Django

  1. cd /opt 进入opt目录

  2. 使用wget命令下载压缩包 wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz

  3. tar -zxvf Python-3.7.4.tgz

  4. cd Python-3.7.4

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

  6. make && make install

  7. cd ~ 创建软链接
    ln -s /usr/local/python3/bin/python3 /usr/bin/python3
    ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

  8. 给python3安装django
    pip3 install django
    建立软连接
    ln -s /usr/local/python3/bin/django-admin /usr/bin/django-admin

  9. 上传自己的项目 在项目内 python3 manage.py runserver

  10. 如果出错:SQLite 3.8.3 or later is required (found 3.7.17)
    参考:https://blog.csdn.net/qq_39969226/article/details/92218635

三、 安装配置uwsgi

  1. 从网站https://uwsgi-docs.readthedocs.io/en/latest/Download.html下载最新版uwsgi,下载Stable/LTS版本的源文件,上传到/opt下

  2. tar -zxvf uwsgi压缩包文件

  3. cd uwsgi解压过的目录(安装包)

  4. python3 setup.py install

  5. ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi 建立软连接

  6. 在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>
    

四、安装配置nginx

  1. 安装

    # 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
    
  2. nginx一般默认安装好的路径为/usr/local/nginx
    在/usr/local/nginx/conf/中先备份一下nginx.conf文件,以防意外。

    cd /usr/local/nginx/conf
    cp nginx.conf nginx.conf.bak
    
  3. 然后打开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  xx.xx.xx.xx; #改为自己的域名,没域名修改为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/; #静态资源路径
            }
        }
    }
    

五、启动服务

  1. 进入项目目录下将settings.py中:

    ALLOWED_HOSTS = ['*'] 
    DEBUG = False
    
  2. cd /data/renwu ls manage.py/uwsgi.ini

  3. 启动uwsgi: uwsgi -x demo.xml

  4. cd /usr/local/nginx/sbin/

  5. 启动nginx:./nginx

六、配置静态资源

  1. 打开django项目中settings.py文件(/unicom/settings.py),添加:

    STATIC_ROOT = '/root/www/unicom/static/'
    
  2. 运行python3 manage.py collectstatic,此命令是搜集静态文件的命令,搜集后的静态文件存放在/root/www/unicom/static/中

  3. 重新启动uwsgi和nginx。

    1. killall -9 nginx  
    2. killall -9 uwsgi
    3. nginx
    4. uwsgi uwsgi.ini
    


七、常用命令

关闭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 -s reload   

检查nginx配置文件语法是否正确

cd /etc/nginx
nginx -t

查看软连接指向

# 1. 查看软连接位置---》在/usr/bin 目录
whereis python
whereis python3
whereis pip
whereis pip3
# 2. 列出软连接指向文件
ls -al python*
ls -al pip*

卸载python

# 1. 删除python3.x的安装包
cd 安装目录
rm -rf python3.xx
# 2. 删除软件的软连接
cd /usr/bin
rm -rf python3 #删除两个软连接
rm -rf pip3

重启nginx

nginx -s reload 

本地测试链接是否成功

curl http://127.0.0.1:80

安装virtualenv

#  python安装完成后!!!
#1. 安装虚拟环境管理库
pip3 install virtualenv
#2. 创建软连接
ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv
#3.安装成功在根目录下建立两个文件夹,主要用于存放env和网站文件的。(个人习惯,其它人可根据自
己的实际情况处理)
mkdir -p /data/env # env保存各种项目对应虚环境
mkdir -p /data/wwwroot #wwwroot,存放网站源码!
#4. 切换到/data/env/下,创建指定版本的虚拟环境。
virtualenv --python=/usr/bin/python3 jd(虚拟环境名)
#5. 激活
cd /data/env/jd/bin
source activate # deactivate 退出虚拟环境
#6. 安装项目依赖
pip install django==2.1.8/requets/numpy/pandas......

防火墙

firewall-cmd --state                       #查看防火墙状态
systemctl stop firewalld.service           #停止防火墙
systemctl disable firewalld.service        #禁止firewall开机启动 
posted @ 2020-03-27 10:59  晴天··  阅读(885)  评论(0编辑  收藏  举报