Ubuntu部署python3-flas

发布时间:2019-09-24 08:20:11编辑:auto阅读(1403)

    https://blog.51cto.com/jokerbug by:joker_bug

    安装虚拟环境

    $ pip install virtualenv
    $ pip install virtualenvwrapper

    把虚拟机环境添加环境变量中

    这个最好find / -name virtualenvwrapper.sh 看下位置
    $ vi .bashrc
    if [ -f /usr/local/bin/virtualenvwrapper.sh ]; then
        export WORKON_HOME=$HOME/.virtualenvs
        source /usr/local/bin/virtualenvwrapper.sh
    fi

    为flask项目创建一个虚拟环境

    $ mkvirtualenv --python=python3 flask  #flask这个名字可以按自己需求修改,我项目是需要python3。所以选择 --python=python3,如果需要python2可以不加这个。
    $ deactivate  #安装完虚拟环境后,先退出这个虚拟环境。

    安装mysql数据库,安装数据这个没什么好提的网上有很多详细教程

    $ apt install mysql-server mysql-client
    $ apt install libmysqld-dev

    安装nginx

    $ apt install nginx   #这个安装也比较简单

    安装supervisor

    需要是python2 暂时不支持python3,这里有时候会遇到坑。pip install --upgrade pip 看看现在pip是什么版本。

    $ vi /usr/local/bin/pip #如果发现pip是python3,不要慌用这个命令把第一行的python3修改python2 即可,如果是python2就无视这步
    $ pip install supervisor #安装supervisor

    安装uwsgi

    需要注意flask项目需要的环境 选择python3 还是python2.

    这个我的项目是python3,如果是python2创建虚拟环境就用python2。具体可以看上面的为项目创建虚拟环境

    $ workon flask  #进入虚拟环境
    $ pip install uwsgi  #这个之前装到虚拟环境里面

    如果出现Failed building wheel for uwsgi执行下面语句

    apt-get install python3-dev

    项目文件创建

    这个按自己需要创建,也可以按我这个创建

    $ mkdir /www  #根目录下创建一个www
    $ mkdir /www/wwwroot  #这个项目文件全部放这个理
    $ mkdir /www/log #日志文件

    uwsgi配置

    uwsgi配置好后,可以测试下

    uwsgi配置路径:/www/wwwroot/uwsgi.ini
    $ cd /www/wwwroot #可以放到项目,按自己需求都可以
    $ vi uwsgi.ini   #创建一个uwsgi配置文件
    
    [uwsgi]
    # 当前这个项目的路径
    chdir           = /www/wwwroot
    # 模块
    module          = manage   #启动文件名 个人理解
    # python的虚拟环境
    home            = /root/.virtualenvs/python3
    # 是否启用mater模式
    master          = true
    # 进程数
    processes       = 2
    # socket文件地址
    socket          = /www/wwwroot/uwsgi.sock
    # wsgi文件
    wsgi-file       = /www/wwwroot/manage.py  #启动文件
    # wsgi文件中的app变量
    callable        = app
    # socket文件的权限
    chmod-socket    = 666
    配置好后可以运行起来测试是否成功
    $ workon python3 #进入虚拟环境
    $ uwsgi --uid www --gid www --ini /www/wwwroot/uwsgi.ini #这个可以指定用户和用户组权限,也可以不指定。测试没能正常打开项目就往下面步骤继续配置

    nginx配置

    $ cd /etc/nginx/sites-enabled/   #切换到nginx默认配置目录
    $ mv default default.bak #修改配置前先备份下配置
    $ vi default
    server {
            listen 80;
            server_name www.xxoo.com;
            charset utf-8;
            client_max_body_size 75M;
            access_log /www/log/xxoo.access.log;
            error_log /www/log/xxoo.error.log;
    
            location / {
                    include uwsgi_params;
                    uwsgi_pass unix:/www/wwwroot/uwsgi.sock; #这个.sock文件一定要和uwsgi配置中一样
            }
    }
    修改nginx配置/etc/nginx/nginx.conf ,第一行user www www ; Nginx用户及组:用户 组 按自己需求配置。详细配置参数网上自己找

    supervisor配置

    supervisor配置路径:/www/wwwroot/supervisor.conf
    $ vi supervisor.conf
    [program:python]  #这个python可以按自己需求写
    # supervisor执行的命令
    command=/root/.virtualenvs/py3-zqcms/bin/uwsgi --uid www --gid www --ini /www/wwwroot/uwsgi.ini
    # 项目的目录
    directory = /www/wwwroot
    # 开始的时候等待多少秒
    startsecs= 5   #按自己需求写
    # 停止的时候等待多少秒
    stopwaitsecs= 5 #按自己需求写
    # 自动开始
    autostart=true
    # 程序挂了后自动重启
    autorestart=true
    # 输出的log文件
    stdout_logfile=/www/log/supervisord.log
    # 输出的错误文件
    stderr_logfile=/www/log/supervisorderr.log
    
    [supervisord]
    # log的级别
    loglevel=info
    配置好后就运行
    $ supervisord -c /www/wwwroot/supervisor.conf  #执行的时候注意是在python2环境

    如何终止多余 Supervisor 进程?

    $ ps -ef | grep supervisor  #查看
    $ kill 4012 #结束进程

    欢迎交流

    注意:uwsgi nginx supervisor我只是简单配置了下,各位可以按需求配置。详细配置参数网上有很多资料。哪里写错,可以留言告诉我。

关键字