Ubuntu16.04下搭建mysql + uwsgi + nginx环境启动flask 项目
1.安装mysql
Sudo apt-get install mysql
配置mysql的数据存储路径,默认在 /var/lib/mysql
sudo cp -R /var/lib/mysql/* /home/applex/mysqldb sudo chown -R mysql:mysql home/applex/mysqldb sudo gedit /etc/mysql/mysql.conf.d/mysqld.cnf
将 [mysqld] 组下的 datadir改为: datadir = /home/applex/mysqldb
sudo vim /etc/apparmor.d/usr.sbin.mysqld 把 /var/lib/mysql r /var/lib/mysql/** rwk 修改成 /home/applex/mysqldb r /home/applex/mysqldb/** rwk
重启mysql
sudo service apparmor restart sudo service mysql restart 或 sudo /etc/init.d/apparmor restart sudo /etc/init.d/mysql restart
配置msyql编码为utf8
sudo gedit /etc/mysql/mysql.conf.d/mysqld.cnf 在[mysqld]下面添加: character-set-server=utf8
sudo gedit /etc/mysql/conf.d/mysql.cnf
添加
default-character-set=utf8 sudo gedit /etc/mysql/debian.cnf
添加
default-character-set=utf8
2.配置anaconda3
从官网下载当前最新sh安装脚本,执行
bash Anaconda3-2018.12-Linux-x86_64.sh
按照提示安装
conda的安装路径中不要包含中文, 根据项目创建虚拟环境并选择python3.6,其他具体操作方法见conda教程
conda create -n myenv python=3.6
3.conda环境中部署项目
若源码部署方式,conda虚拟环境切换到源码目录,执行
pip install -e .
注意源码目录必须包含setup.py 和 MANIFEST.ini
若以模块文件部署方式, conda虚拟环境切换到wheel文件目录,执行
pip install xxx.whl
模块安装后需要指定一个项目启动目录并编写入口文件,如下例:
# [main.py] form myproject import app if ‘__main__’ == __name__: app.run()
可以执行python main.py 启动flask内置服务器来测试打包的项目模块是否可以正常运行
4.安装uwsgi
切换到conda虚拟环境下,用pip安装uwsgi:
conda activate myenv pip install uwsgi
安装uwsgi报UnicodeEncoding错误,请确认conda路径是否包含unicode字符(例如中文)
安装uwsgi报如下错,安装配置gcc4.7
/home/applex/conda/envs/myproject/compiler_compat/ld: error: lto-wrapper failed:
sudo apt-get install gcc-4.7 sudo rm /usr/bin/gcc sudo ln -s /usr/bin/gcc-4.7 /usr/bin/gcc
执行uwsgi –help确认uwsgi是否正确安装
uwsgi –help 查看帮助信息,若报如下错,安装配置libpcre3-dev
uwsgi: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory
sudo apt-get install libpcre3 libpcre3-dev find / -name libpcre.so.3 找到 /lib/x86_64-linux-gnu/libpcre.so.3 sudo ln -s /lib/x86_64-linux-gnu/libpcre.so.3 /usr/lib/libpcre.so.1
编写uwsgi配置脚本
# [my_uwsgi.ini] # 指定python环境 pythonpath = /home/applex/conda/envs/myproject/bin # 启动http地址还是socket地址(用于与代理通信) http = 127.0.0.1:7878 # socket = 127.0.0.1:7878 # 指定进程数(同process项) workers = 4 # 指定线程数 threads = 2 # 设置日志路径 daemonize = /home/applex/myproject/server.log # 设置app启动目录 chdir = /home/applex/myproject # 设置app启动文件(也可直接指定文件全路径,无依赖时省略chdir) # 注意引用的py文件不能在调用时启动app实例 wsgi-file = ./main.py # 指定application对象实例 callable= app
启动uwsgi服务器
uwsgi mypath/ my_uwsgi.ini
查看uwsgi是否运行
ps -aux | grep uwsgi
查看端口号占用
netstat -anp | grep 7878
结束uwsgi进程
pgrep uwsgi | xargs kill -s 9
在配置的daemonize参数指定的文件中查看错误日志
5. 安装redis
sudo apt-get install redis-server
6.安装nginx
sudo apt-get install nginx
删除/etc/nginx/sites-enabled目录下的default链接,复制/etc/nginx/sites-available/default到/etc/nginx/sites-enabled,并按需求命名为myproject.conf,拷贝uwsgi_params到项目路径以便后期客制
cp /etc/nginx/uwsgi_params /home/applex/myproject/
修改myproject.conf,增加:
server { listen 80; listen [::]:80; server_name 127.0.0.1; charset utf-8; # 转发url请求到uwsgi location / { include /home/applex/myproject/uwsgi_params; uwsgi_pass 127.0.0.1:8000; uwsgi_param UWSGI_CHDIR /home/applex/myproject; uwsgi_param UWSGI_SCRIPT main:app; } # 配置nginx处理静态文件 location /static { alias /home/applex/conda/envs/myproject/lib/python3.6/site-packages/myproject/static; } }
操作nginx服务
sudo service nginx start/stop/reload
Ubuntu16.04下搭建mysql + uwsgi + nginx环境启动flask 项目的更多相关文章
- Ubuntu16.04下搭建开发环境及编译tiny4412 Android系统【转】
本文转载自:http://blog.csdn.net/songze_lee/article/details/72808631 版权声明:本文为博主原创文章,未经博主允许不得转载. 1.安装ssh服务器 ...
- ubuntu16.04下 搭建 lnmp 环境
apt-get install nginx apt-get php7.-mysql apt-get install mysql 编辑nginx配置文件 vim /etc/nginx/sites-ena ...
- ubuntu16.04下安装配置深度学习环境(Ubuntu 16.04/16.10+ cuda7.5/8+cudnn4/5+caffe)
主要参照以下两篇博文:http://blog.csdn.net/g0m3e/article/details/51420565 http://blog.csdn.net/xuzhongxiong/a ...
- 在 Ubuntu16.04 中搭建 Spark 单机开发环境 (JDK + Scala + Spark)
1.准备 本文主要讲述如何在Ubuntu 16.04 中搭建 Spark 2.11 单机开发环境,主要分为 3 部分:JDK 安装,Scala 安装和 Spark 安装. JDK 1.8:jdk-8u ...
- Ubuntu 16.04下搭建kubernetes集群环境
简介 目前Kubernetes为Ubuntu提供的kube-up脚本,不支持15.10以及16.04这两个使用systemd作为init系统的版本. 这里详细介绍一下如何以非Docker方式在Ubun ...
- Ubuntu16.04下修改MySQL数据的默认存储位置
由于在Linux下MySQL默认是存储在/var/lib/mysql目录下,mysql的数据会非常大,由于/var所划分的空间不够大,所以我们需要将mysql数据存放路径修改一下,放到大分区里面,以便 ...
- Caffe学习系列(一)Ubuntu16.04下搭建编译Caffe环境,并运行MNIST示例(仅CPU)
前言: 正文: 1.安装必要依赖包: sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev l ...
- Ubuntu16.04下搭建Go语言环境
1. 安装GO sudo apt-get install golang-go 2. 设置Go环境变量 打开终端,输入命令: export GOROOT=$HOME/goexport PATH=$GOR ...
- Ubuntu16.04下搭建LAMP环境
前期准备sudo apt-get update # 获取最新资源包sudo apt-get upgrade # 本机软件全部更新sudo apt-get d ...
随机推荐
- Jedis异常解决:NOAUTH Authentication required
引言 之前项目能够正常运行,因为默认选择db0,后来新的需求来了,不是默认db0,而是给参数选择db. 修改后代码如下,却报错NOAUTH Authentication required. 解决方法 ...
- Python调用ansible API系列(三)带有callback的执行adhoc和playbook
在第二篇文章中虽然可以执行adhoc和playbook但是执行结果的输出并不是特别直观,虽然没有报错但是到底什么结果其实你是不知道的尤其是在执行adhoc的时候,这时候我们要利用callback来设置 ...
- Kubernetes集群部署史上最详细(一)Kubernetes集群安装
适用部署结构以及版本 本系列中涉及的部署方式和脚本适用于1.13.x和1.14,而且采取的是二进制程序部署方式. 脚本支持的部署模式 最小部署模式 3台主机,1台为k8s的master角色,其余2台为 ...
- 卷积神经网络之AlexNet
由于受到计算机性能的影响,虽然LeNet在图像分类中取得了较好的成绩,但是并没有引起很多的关注. 知道2012年,Alex等人提出的AlexNet网络在ImageNet大赛上以远超第二名的成绩夺冠,卷 ...
- 卷积神经网络之LeNet
开局一张图,内容全靠编. 上图引用自 [卷积神经网络-进化史]从LeNet到AlexNet. 目前常用的卷积神经网络 深度学习现在是百花齐放,各种网络结构层出不穷,计划梳理下各个常用的卷积神经网络结构 ...
- 内置对象Cookie和Session有何不同【常见面试题】
我们在面试的时候,时常会被问到Cookie和Session的区别,对于初学者来说,有时候会混淆这两个内置对象.下面就我自己的理解,对这2个内置对象进行剖析. 1.Session对象存在Web服务器端, ...
- C# 打印PDF文档的10种方法
操作PDF文档时,打印是常见的需求之一.针对不同的打印需求,可分多种情况来进行,如设置静默打印.指定打印页码范围和打印纸张大小.双面打印.黑白打印等等.经过测试,下面将对常见的几种PDF打印需求做一些 ...
- iOS----------Mac维修预约-如何找到电脑维修单
先打开苹果官网,找到技术支持 2.选择维修选项 3.查看维修状态 4.显示维修时间订单
- 2017-12-24 为新语言编写Visual Studio Code语法高亮插件
本文源码库: program-in-chinese/quan4-highlighter 语法高亮是一个开发环境的基本功能. 此文尝试为之前的"圈4"语言(详见编程语言试验之Antl ...
- 记一次mongodb聚合查询
先说一下场景,产品中用到了简单的表单构造器,开始提供了一系列的控件,例如单行文本框.多行文本框.单选.复选.时间等,之后你可以拖拽控件自己组装你想要的表单……网上有很多的表单构造器,这里就不细说了,可 ...