微信咨询

微信咨询

13610*910*9

服务热线 7*24小时

电话咨询

利用宝塔+python+搭建falsk项目_详

iamdu2019-12-23 10:35:26 浏览: 701647

首先安装python3

由于CoentOS 默认是python2,项目依赖的是python3,安装教程: https://my.oschina.net/u/3978509/blog/2979030

安装python3后安装宝塔面板

Centos安装脚本 :

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

等待安装,安装完成后登录面板(如不能登录请查看端口是否放行:8888)

软件管理中安装Nginx

在宝塔界面添加网站

  1. 设置好域名,数据库,php版本选择纯静态(不管也行)–> 域名已解析
  2. 在本地的flask应用文件打包上传到刚刚创建的web文件中,解压:例如

创建项目虚拟环境(在创建的网站目录)

由于安装python3是已经安装了virtualenv,使用命令操作

$ cd /www/wwwroot/你的项目文件夹  # 文件夹为创建的名字根目录
$ python3 -m venv venv
# 进入虚拟环境
$ source venv/bin/activate
# 安装uWSGI和requirements
$ pip install uwsgi
$ pip install -r requirements.txt
# 退出虚拟环境
$ deactivate 

配置config.ini

放到网站根目录中

[uwsgi]
socket = 127.0.0.1:5000  # 项目内部端口号(必须与nginx相同)
chdir = /www/wwwroot/ss.specimen.vip
# 指向网站目录(根)
wsgi-file = manufacture.py    # 项目启动文件名
callable = cms_app  # 项目中以启动的变量名(如:app/application ),根据你的实际情况填写
processes = 2 # 处理器数,根据你的实际情况填写
threads = 4 # 线程数
stats = 127.0.0.1:9191 #状态检测地址,注意服务器提供商和宝塔的端口放行策略

配置Nginx

在宝塔面板中–>管理网站–>设置–>配置文件 替换为⬇:

server {
  listen  80; #若有多个web应用,都是80端口监听
  server_name ss.specimen.vip; #你的网址地址
  location / {
    include      uwsgi_params;
    uwsgi_pass   127.0.0.1:5000;  # 指向uwsgi 所应用的内部地址,所有请求将转发给uwsgi 处理
    uwsgi_param UWSGI_PYHOME /www/wwwroot/ss.specimen.vip/venv; # 指向虚拟环境目录
    uwsgi_param UWSGI_CHDIR /www/wwwroot/ss.specimen.vip; # 指向网站根目录
    uwsgi_param UWSGI_SCRIPT manufacture:cms_app; # 指定启动程序,manufacture是manufacture.py前部分,cms_app是程序内用以启动的 application 变量名
  }
}

例如:

重新启动服务

方法(nginx):

  1. 宝塔面板软件管理中重启nginx; (推荐)
  2. 修改配置后重新加载生效: nginx -s reload

方法(uwsgi):

  1. 进入虚拟环境命令: source venv/bin/activate
  2. 启动uwagi命令: uwsgi config.ini (如果不报错就表示成功了!)

最后后台挂器服务就OK了

nohup uwsgi config.ini &

网页上就可以正常访问了,若不能正常访问,请查看相应端口是否放行!

欢迎留下你的看法

共 3 条评论

  • iamdu
    2019-12-24 00:22:41

    绑定域名的nginx配置文件参考

    =============

    server
    {
    listen 80;
    server_name btaotao.com http://www.btaotao.com;
    index index.php index.html index.htm default.php default.htm default.html;
    root /www/wwwroot/my_flask;

    location / {
    include uwsgi_params;
    uwsgi_pass 127.0.0.1:5000; # 指向uwsgi 所应用的内部地址,所有请求将转发给uwsgi 处理
    uwsgi_param UWSGI_PYHOME /www/wwwroot/my_flask/demo_venv; # 指向虚拟环境目录
    uwsgi_param UWSGI_CHDIR /www/wwwroot/my_flask; # 指向网站根目录
    uwsgi_param UWSGI_SCRIPT manufacture:app; # 指定启动程序,manufacture是manufacture.py前部分,cms_app是程序内用以启动的 application 变量名
    }

    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;
    #SSL-END

    #ERROR-PAGE-START 错误页配置,可以注释、删除或修改
    #error_page 404 /404.html;
    #error_page 502 /502.html;
    #ERROR-PAGE-END

    #PHP-INFO-START PHP引用配置,可以注释或修改
    include enable-php-54.conf;
    #PHP-INFO-END

    #REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
    include /www/server/panel/vhost/rewrite/btaotao.com.conf;
    #REWRITE-END

    #禁止访问的文件或目录
    location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
    {
    return 404;
    }

    #一键申请SSL证书验证目录相关设置
    location ~ \.well-known{
    allow all;
    }

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
    expires 30d;
    error_log off;
    access_log /dev/null;
    }

    location ~ .*\.(js|css)?$
    {
    expires 12h;
    error_log off;
    access_log /dev/null;
    }
    access_log /www/wwwlogs/btaotao.com.log;
    error_log /www/wwwlogs/btaotao.com.error.log;
    }

    • iamdu
      2019-12-24 00:23:23

      什么都不需要动 在宝塔的默认网站配置文件里加上下面这段代码

      location / {
      include uwsgi_params;
      uwsgi_pass 127.0.0.1:5000; # 指向uwsgi 所应用的内部地址,所有请求将转发给uwsgi 处理
      uwsgi_param UWSGI_PYHOME /www/wwwroot/my_flask/demo_venv; # 指向虚拟环境目录
      uwsgi_param UWSGI_CHDIR /www/wwwroot/my_flask; # 指向网站根目录
      uwsgi_param UWSGI_SCRIPT manufacture:app; # 指定启动程序,manufacture是manufacture.py前部分,cms_app是程序内用以启动的 application 变量名
      }

  • iamdu
    2019-12-23 11:15:20

    如果安装了宝塔面板的python项目管理器

    实际上只需要安装uwsgi 即可,然后保证uwsgi里的端口和nginx 的端口一致

    就可以正常跑起程序了

  • 发表回复

    您的电子邮箱地址不会被公开。 必填项已用 * 标注