美文网首页
CentOS7.2腾讯云安装部署Nginx+uwsgi+Djan

CentOS7.2腾讯云安装部署Nginx+uwsgi+Djan

作者: 坐在坟头数星星 | 来源:发表于2020-05-09 21:04 被阅读0次

    Django==2.0 Python==3.6.9

    使用tar命令解压缩,tar是Linux系统下的压缩与解压缩的命令,tar命令后面的参数主要有以下几种:
    下面的五个参数为必选参数,有且只能有一个 ,代表压缩与解压缩的模式:
    -c: 建立压缩档案
    -x:解压
    -t:查看内容
    -r:向压缩归档文件末尾追加文件
    -u:更新原压缩包中的文件
    可选参数,可以一个或者多个并用:
    -z:有gzip属性的
    -j:有bz2属性的
    -Z:有compress属性的
    -v:显示所有过程
    -O:将文件解开到标准输出
    Python下载地址

    补充安装python 设置ssl文件导入,不设置会导致些问题



    vi编辑器查找字符命令 在命令输入模式下输入 :/_socket
    1.安装python

    #解压命令如下
    tar -xzvf Python-3.6.9.tgz
    #安装依赖
    yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel gcc gcc-c++ openssl-devel
    #进入解压文件目录配置安装路径
    ./configure --prefix=/usr/local/python3
    #安装zlib依赖和更新zlib
    yum -y install zlib*
    yum update zlib
    #安装Python
    make && make install
    
    结尾显示如下表示安装完成
    Looking in links: /tmp/tmptrardd19
    Collecting setuptools
    Collecting pip
    Installing collected packages: setuptools, pip
    Successfully installed pip-18.1 setuptools-40.6.2
    
    创建Python软连接
    ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
    验证是否安装正确
    [root@VM_0_17_centos bin]# python3
    Python 3.6.9 (default, Dec 11 2019, 15:28:02)
    [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>>
    
    
    创建pip3软连接
    ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
    更新pip
    pip3 install --upgrade pip
    安装虚拟环境
    pip3 install virtualenv
    查找文件
    find / -name virtualenv
    用命令创建虚拟环境
    /usr/local/python3/bin/virtualenv my_web_project
    激活环境
    source bin/activate
    
    安装Django
    我个人用的Django==2.0
    pip3 install Django==2.0
    

    2.安装MySql
    mysql国内镜像

    查看禁用
    yum repolist all | grep mysql
    修改禁用(enabled=0是关;1是开)
    vim /etc/yum.repos.d/mysql-community.repo
    查看mysql安装包
    yum repolist all | grep mysql
    rpm -qa | grep mysql
    [root@VM_0_17_centos ~]#  rpm -qa | grep mysql
    mysql-community-client-5.6.41-2.el7.x86_64
    mysql-community-release-el7-5.noarch
    mysql-community-devel-5.6.41-2.el7.x86_64
    mysql-community-server-5.6.42-2.el7.x86_64
    mysql-community-libs-5.6.41-2.el7.x86_64
    mysql-community-common-5.6.42-2.el7.x86_64
    如果有安装过5.6的最好卸载掉安装5.7及以上
    卸载
    [root@VM_0_17_centos ~]#  yum remove mysql-community*
    
    
    下载mysql
    wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
    rpm -ivh mysql57-community-release-el7-11.noarch.rpm
    执行安装
    yum -y install mysql mysql-server mysql-devel
    安装完成显示如下
    Dependency Installed:
    mysql-community-common.x86_64 0:5.6.46-2.el7        numactl-libs.x86_64 0:2.0.12-3.el7_7.1
      perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.el7        perl-Compress-Raw-Zlib.x86_64 1:2.061-4.el7
      perl-DBI.x86_64 0:1.627-4.el7                       perl-Data-Dumper.x86_64 0:2.145-3.el7
      perl-IO-Compress.noarch 0:2.061-2.el7               perl-Net-Daemon.noarch 0:0.48-5.el7
      perl-PlRPC.noarch 0:0.2020-14.el7
    
    Replaced:
      mariadb-libs.x86_64 1:5.5.52-1.el7
    Complete!
    
    如果发现安装速度过慢我们可以更换一下源(阿里源)
    mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_old
    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    yum makecache
    
    如果还是过慢就自己下载软件包传上去(下面是缓存路径)
    /var/cache/yum/x86_64/7/mysql57-community/packages/
    
    启动mysql服务
    service mysqld start
    进入数据库(初始密码为空)
    mysql -u root -p
    修改root密码
    set password for root@localhost = password('自己的密码'); 
    

    3.配置数据库

    [在mysql shell环境下执行]
    创建项目所需的数据库(xxx数据库名称)自己替换
    create database xxx default charset=utf8mb4 default collate utf8mb4_unicode_ci;
    创建用户(xxx用户名),(yyy密码)自己替换
    create user 'xxx'@'localhost' identified by 'yyy';
    用户分配权限(xxx数据库名称),(nnn用户名)自己替换
    grant all privileges on xxx.* to 'nnn'@'localhost';
    刷新
    flush privileges;
    
    额外内容manage.py数据库操作
    导出数据
    [SQLite3]
    python manage.py dumpdata > data.json
    [mysql 在数据库调用]
    mysqldump -u xxx -p xxx.db > data.sql
    导入数据
    [SQLite3]
    python manage.py loaddata data.json
    [mysql 在mysql shell下调用]
    进入数据库
    source xxx.sql;
    文件上传scp[user用户名,ip服务器IP,xxx是文件]
    scp xxx.xx user@IP:/home/xxx.xx
    

    4.安装uwsgi
    uwsgi文档

    在系统环境下安装,非虚拟环境
    pip3 install uwsgi
    uwsgi测试
    -------------------------代码------------------------------
    创建boobar.py文件
    def application(env, start_response):
        start_response('200 OK', [('Content-Type','text/html')])
        return [b"Hello World"]
    -------------------------代码------------------------------
    
    启动测试
    /usr/local/python3/bin/uwsgi --http :9090 --wsgi-file foobar.py
    打开网页访问9090端口看是否返回Hello World
    关闭uwsgi
    ps -aux | grep uwsgi |awk '{print $2}'|xargs kill -9
    
    
    配置uwsgi.ini文件
    -------------------------代码------------------------------
    # Web.ini file    path;/home/Web_uwsgi/Web.ini
    [uwsgi]
    #此处填写项目地址,我的Django项目地址是/home/WebProject
    chdir = /home/WebProject
    #虚拟环境的目录
    home = /home/my_web_project 
    # wsgi文件
    module = WebProject.wsgi:application
    # process-related settings
    # master
    master = True
    # 进程数量
    processes = 4
    #最大请求
    max-requests = 5000
    #请求超时时间(单位秒)
    harakiri = 60
    #设置监听端口
    socket = 127.0.0.1:8001
    #使用用户组,使用root用户比较危险
    uid = 1000
    gid = 2000 
    #快捷启动重启目录
    pidfile = /home/Web_uwsgi/master.pid
    #此处配置的为日志文件存放的地方
    daemonize = /home/Web_uwsgi/my_uwsgi.log
    #服务器停止后进行回收log文件等操作
    vacuum = True
    -------------------------代码------------------------------
    
    启动uwsgi.ini
    uwsgi --ini /home/Web_uwsgi/Web.ini
    查看是否启动
    ps -aux | grep uwsgi
    打印如下就说明以启动
    1000     12782  0.0  1.5 229732 29208 ?        S    14:33   0:00 /usr/local/python3/bin/uwsgi --ini web.ini
    1000     12790  0.0  1.2 229732 23788 ?        S    14:33   0:00 /usr/local/python3/bin/uwsgi --ini web.ini
    1000     12791  0.0  1.2 229732 23788 ?        S    14:33   0:00 /usr/local/python3/bin/uwsgi --ini web.ini
    1000     12792  0.0  1.2 229732 23788 ?        S    14:33   0:00 /usr/local/python3/bin/uwsgi --ini web.ini
    1000     12793  0.0  1.2 229732 23788 ?        S    14:33   0:00 /usr/local/python3/bin/uwsgi --ini web.ini
    

    5.安装nginx

    准备工具
    sudo yum install yum-utils
    创建nginx.repo文件
    sudo vim /etc/yum.repos.d/nginx.repo
    并添加以下内容
    -----------------------------Code---------------------------------
    [nginx-stable]
    name=nginx stable repo
    baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
    gpgcheck=1
    enabled=1
    gpgkey=https://nginx.org/keys/nginx_signing.key
    
    [nginx-mainline]
    name=nginx mainline repo
    baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
    gpgcheck=1
    enabled=0
    gpgkey=https://nginx.org/keys/nginx_signing.key
    -----------------------------Code---------------------------------
    
    编辑配置文件
    vim /etc/nginx/conf.d/myconf.conf
    -----------------------------Code---------------------------------
    #Nginx反向代理服务器,主要功能就是将发送到指定端口的数据转发到相应的服务器中
    server {
       listen 80; # 监听80端口
       server_name WebObject; # 路径前面的url名称,也就是你在浏览器中输入访问这个服务器的网址,比如1.1.1.10
       access_log /var/log/nginx/access.log main; # Nginx日志配置
       charset utf-8; # Nginx编码
       client_max_body_size 75M;#最大上传大小
    
       error_page 404 /404.html; # 配置notfound错误页面
       error_page 500 502 503 504 /50x.html; # 配置50X错误页面
    
    # 指定项目路径uwsgi,此处配置的就是Nginx和uwsgi之间的代理
       location / {
          include /etc/nginx/uwsgi_params; # 导入Nginx的模块,这个模块是用来和uWSGI进行通讯的
          uwsgi_connect_timeout 30; # 设置连接uWSGI超时时间
          uwsgi_pass 127.0.0.1:8001; # 指定uwsgi的sock文件,此处填写要和uwsgi配置文件中的socket后面是一样的
       }
    
       location /media/{
          alias /home/WebProject/media;
       }
    
       # 指定静态文件路径,此处指定你的CSS和JS的文件路径,也就是你Django项目中的静态文件夹的地址,配置不好,所有的CSS以及JS效果都看不到
       location /static/ {
          alias /home/WebProject/static;
          #index index.html index.htm;
       }
    }
    -----------------------------Code---------------------------------
    
    检测配置文件是否正确(正确打印如下) nginx -t 
    [root@VM_0_17_centos Web_uwsgi]# nginx -t
    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful
    启动nginx服务
    service nginx restart
    查看以运行服务
    netstat -ntpl
    重新加载uwsgi
    uwsgi --reload uwsgi.pid
    ps -ef | grep uwsgi
    

    相关文章

      网友评论

          本文标题:CentOS7.2腾讯云安装部署Nginx+uwsgi+Djan

          本文链接:https://www.haomeiwen.com/subject/jxnogctx.html