zoukankan      html  css  js  c++  java
  • 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开机启动 
    
  • 相关阅读:
    Stochastic Gradient Descent
    混合高斯模型(Mixtures of Gaussians)和EM算法
    支持向量机通俗导论(理解SVM的三层境界)
    第十二课、计算器的核心解析算法(上)------------------狄泰软件学院
    第十一课、Qt中的字符串类------------------狄泰软件学院
    第十课、初探Qt的消息处理------------------狄泰软件学院
    第九课、计算器界面代码重构------------------狄泰软件学院
    第八课、启航!第一个应用程序------------------狄泰软件学院
    第七课、Qt中的坐标系统------------------狄泰软件学院
    第六课、窗口组件及窗口类型------------------狄泰软件学院
  • 原文地址:https://www.cnblogs.com/yanadoude/p/12597209.html
Copyright © 2011-2022 走看看