部署python flask项目到云服务器(flask+mysql+uwsgi+nginx)

部署python flask项目到云服务器

这是我第一次写博客,写的不好请多多见谅。

操作环境是ubuntu16.04,使用xshell和xftp工具,记得进入root用户,如果没有需要设置,怎么设置后面更新。

  1. Python 3.5.2(自带的,需要设置python为默认的python版本)然后安装pip(sudo apt-get install python-pip)
    sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
    sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 2这个是python3.6的
    然后
    sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100
    sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150

  2. 安装mysql8.0
    2.1 先下载好APT库,https://dev.mysql.com/downloads/repo/apt/ (可以用wget命令 )
    2.2 解压 sudo dpkg -i 保存的路径/mysql-apt-config_0.8.10-1_all.deb(文件名)
    2.3 下载更新最新的软件包信息 sudo apt-get update
    安装 apt-get install mysql-server
    安装时记得选择传统的加密方式
    2.4允许远程连接设置utf-8为默认字符集

    输入命令: vi /etc/mysql/mysql.conf.d/mysqld.cnf
    i 进行编辑
    在 [mysqld]里面添加
    bind-address = 0.0.0.0
    character-set-server=utf8
    esc退出编辑
    :wq保存退出
    同上 vi /etc/mysql/conf.d/mysql.cnf
    default-character-set=utf8
    查看字符集 :先连接上数据库,然后show variables like ‘%character%’;
    8.0.17直接授权不可行,(GRANT ALL PRIVILEGES ON . TO ‘Ubuntu’@’%’ IDENTIFIED BY ‘123456’ WITH GRANT OPTION;)采用其他方法
    use mysql;
    select host,user from user;(查看现有用户)
    update user set host=’%’ where user=‘root’;
    select host,user from user;(查看是否修改成功)

FLUSH PRIVILEGES;(刷新权限)

3.上传项目文件(xftp)

4.安装配置uwsgi(pip install uwsgi)

chdir 改为你自己的项目地址
module 改为你的管理的py文件,app就是你flask初始化的名字
比如我的是main.py和app
部署python flask项目到云服务器(flask+mysql+uwsgi+nginx)_第1张图片
启动uwsgi --ini uwsgi.ini
报错:WARNING: Can’t find section “uwsgi” in INI configuration file uwsgi.ini
先找有无uwsgi,然后如果有就是因为编码的问题,需要设置为utf-8,而不是bom,用notepad++编辑更改编码格式。
uwsgi --reload uwsgi/uwsgi.pid重启服务

5.下载配置nginx (apt-get install nginx)

http模块下面加上server
vim /etc/nginx/nginx.conf
端口80可以不改,默认http访问
uwsgi_pass 改为你自己项目的端口
/static的地址改为你自己的项目地址

部署python flask项目到云服务器(flask+mysql+uwsgi+nginx)_第2张图片
图片中的server_name需要指向你自己的服务器的公网ip
这里需要指定配置启动nginx -c /etc/nginx/nginx.conf
如果需要直接在根目录下输入nginx直接启动,还需要配置/etc/nginx/sites-available/default这个文件
再启动nginx 重启的话nginx -s reload
nginx -s stop停止
ps -ef | grep nginx 查看进程
整个项目就到此部署完成了,项目demo:https://www.gary666.com/,gary个人博客
有问题可以加qq:1349380978联系我,或者直接发邮件[email protected]

你可能感兴趣的:(python)