由于新浪云现在不免费了。而且云豆也用完了。所以去腾讯云申请了个学生云主机,一元一个月。

不过部署开发环境还是有点麻烦的,搞了好几天,终于部署成功了!

下面说部署过程:

我云主机用的是 Ubuntu 14.04.1 LTS系统,带LNMP框架,Pyhon2.7(先是尝试用centose6.5,但是一直因为python版本不对和mysql-python安装失败的问题,搞了好久没有成功所以就换成Ubuntu了)

mysql,nginx,这些都是安装好了的。

1.默认安装好的mysql是没有密码的。所以先进安全模式把密码改了:

# 启动安全模式
/etc/init.d/mysql stop
/usr/bin/mysqld_safe --skip-grant-tables >/dev/null 2>&1
/usr/bin/mysql -u root mysql # 进入mysql
mysql> update user set password = Password('xxx') where User = 'root';
mysql> flush privileges;
# 退出
mysql> exit();

然后创建数据库:

create database blogapp default character set utf8

注:因为是我的博客搬迁,创建好数据库之后还需要用脚本把数据导入(这个数据脚本是在新浪云导出的)

2. 安装Mysql-Python

sudo apt-get install python-setuptools
sudo apt-get install libmysqld-dev
sudo apt-get install libmysqlclient-dev
sudo apt-get install python-dev
sudo easy_install mysql-python
# 顺便把pip也装上
sudo easy_install pip

3. 安装VirtualEnv

因为不同的项目会依赖不同的依赖包,为了方便,把Python的虚拟环境 VirtualEnv也安装上。VirtualEnv 可以为每个Python应用创建独立的开发环境,使他们互不影响

pip install virtualenv
# 创建虚拟环境
virtualenv pyFlask

默认情况下虚拟环境不会依赖系统环境的global site-packages。比如系统环境里安装了MySQLdb模块,在虚拟环境里import MySQLdb会提示ImportError。如果想依赖系统环境的第三方软件包,可以使用参数--system-site-packages。此外,也可使用virtualenvwrapper的toggleglobalsitepackages命令控制当前环境是否使用global site-packages。

 virtualenv --system-site-packages env1

virtualenv的相关命令:

# 进入对应目录:
cd pyFlask
# 启动虚拟环境:
source bin/activate
#退出虚拟环境:
deactivate

4. 上传代码,安装其他依赖库

用ftp把项目代码上传到云主机上,所有云主机上还需要安装ftp服务器

安装教程:http://jingyan.baidu.com/article/67508eb4d6c4fd9ccb1ce470.html

代码上传之后,用pip把需要的依赖库安装上。

# requirement.txt 为依赖关系清单
pip install -r requirements.txt

测试下代码是否能成功运行:

python blogapp.py runserver
# blogapp.py 是项目的入口文件

5. 安装配置uWSGI

pip install uWSGI

添加uwsgi的配置文件(如下):

[uwsgi]
# uwsgi 启动时所使用的地址与端口
socket = 127.0.0.1:5000 # 指向网站目录
chdir = /home/uftp/blog/ # python 启动程序文件
wsgi-file = blogapp.py # python 程序内用以启动的 application 变量名
callable = app # 进程数
processes = 4 # 线程数
threads = 2 #状态检测地址
stats = 127.0.0.1:9191

使用uwsgi运行应用

uwsgi config.ini

用curl 测试下web项目是否运行成功

curl http://localhost:5000

5.   配置nginx

在Nginx的安装目录找到Nginx的配置文件,默认安装目录一般是/usr/local/nginx/conf/,配置文件是nginx.conf,对其进行编辑,使得Nginx能够加载uwsgi。

server {
listen 80;
server_name 127.0.0.1; location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:5000; # 指向uwsgi 所应用的内部地址,所有请求将转发给uwsgi 处理
uwsgi_param UWSGI_PYHOME /home/www/blog/pyFlask; # 指向虚拟环境目录
uwsgi_param UWSGI_CHDIR /home/www/blog; # 指向网站根目录
uwsgi_param UWSGI_SCRIPT blog:app; # 指定启动程序
}
}

重启nginx:

sudo service nginx restart

# 如何重启异常了 可以直接杀死进程,再启动
killall nginx
sudo service nginx start

可以再次用curl命令测试应用运行情况

现在web应用基本可以成功运行了

参考:

http://www.cnblogs.com/Ray-liang/p/4173923.html?utm_source=tuicool&utm_medium=referral

http://juxuan.fu.blog.163.com/blog/static/112129259201411188132562/

本文链接: http://www.bugcoding.com/entry/14

腾讯云部署Flask应用的更多相关文章

  1. Hexo 博客 之 腾讯云部署过程

    写在前面 Hexo 博客搭好了有差不多两周时间了,这期间走了很多弯路,跳了很多坑.一些坑自己 bing 到了答案,找到了解决方法,一些坑则是自己摸索出来的解决方法.现在准备写几篇关于搭建流程.搭建过程 ...

  2. 腾讯云部署javaWeb项目之一应用服务器

    1.登录腾讯云,点击登录选择浏览器登录.输入用户名 按回车键 然后输入 密码. 2.安装java环境,直接命令:yum -y install java-1.8.0-openjdk java-1.8.0 ...

  3. 腾讯云部署keepalived高可用

    使用背景: 通过调用python SDK在腾讯云手动部署keepalived高可用 部署环境 系统:centos7.3 Master:192.168.0.100 Slave:192.168.0.14 ...

  4. 腾讯云部署golang flow流程,vue.js+nginx+mysql+node.js

    这次总算把js-ojus/flow的ui部署到腾讯云上,比较吐槽的就是,为啥这么复杂,vue.js前后端分离,比golang编写的部署方面复杂几万倍.真是浪费人生啊. golang+sqlite写的东 ...

  5. 阿里云部署 Flask + WSGI + Nginx 详解

    抵不住朋友的诱惑,今天终于入手了一台阿里云服务器,是Ubuntu 1.4 32位版本,最初考虑是用来尝尝鲜只是买了个最低配的,价格算起来与在国外买个空间的价格相当吧(可能一年才贵100多),但用起来感 ...

  6. 阿里云部署 Flask + uWSGI + Nginx

    一.引言 今天入手了一台阿里云服务器,是centeros 7.5版本.本文解决的是 Flask 的部署问题.假设你的Flask的应用已经完成,现在只是部署的问题,本文以部署我的二次开发微信订阅号的项目 ...

  7. 阿里云部署 Flask + WSGI + Nginx 转载详解

    我采用的部署方案是: Web 服务器采用 uwsgi host Flask 用 Supervisor 引用 uwsgi 作常规启动服务 基于 Nginx 作反向代理 首先, 阿里云服务器可以通过 SS ...

  8. 阿里云部署flask

    https://www.cnblogs.com/Ray-liang/p/4173923.html

  9. 腾讯云 K8S 集群实战 Service Mesh—Linkerd2 & Traefik2 部署 emojivoto 应用

    Linkerd 是 Kubernetes 的服务网格. 它通过为您提供运行时调试(runtime debugging).可观察性(observability).可靠性(reliability)和安全性 ...

随机推荐

  1. sshuttle基于VPN的透明代理,安全连接

    sshuttle基于VPN的透明代理, 通过 ssh 创建一条从你电脑连接到任何远程服务器的 VPN 连 sudo sshuttle -r username@sshserver 0.0.0.0/0 - ...

  2. git Feature分支

    Feature分支 软件开发中,总有无穷无尽的新的功能要不断添加进来. 添加一个新功能时,你肯定不希望因为一些实验性质的代码,把主分支搞乱了,所以,每添加一个新功能,最好新建一个feature分支,在 ...

  3. 柯南君:看大数据时代下的IT架构(4)消息队列之RabbitMQ--案例(Helloword起航)

    柯南君:看大数据时代下的IT架构(4)消息队列之RabbitMQ--案例(Helloword起航) 二.起航 本章节,柯南君将从几个层面,用官网例子讲解一下RabbitMQ的实操经典程序案例,让大家重 ...

  4. nova的wsgi介绍【WIP】

    有关openstack的所有的帖子. https://www.ustack.com/blog/openstack_hacker/#Nova_Workflow 网上已经很多的分析文章了: http:// ...

  5. 汉诺塔III 汉诺塔IV 汉诺塔V (规律)

    汉诺塔III Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Subm ...

  6. java 请求响应乱码

    package org.operamasks.servlet; import java.io.IOException; import java.io.PrintWriter; import java. ...

  7. 2014年同年CFA考试中哪些CFA资料没有变化?

    从2014年起,美国CFA协会将官方教材.题库.模拟题等CFA资料捆绑在报名费用之中,而以往可以单独选购的纸质版教材也变成了额外购买.这让非常多參加12月的CFA考生产生了借阅6月考生CFA资料的想法 ...

  8. 使用 AngularJS 从零构建大型应用

    0.导言 1.准备工作 2.构建框架 3.丰富你的directives 4.公用的services 5.用controllers组织业务 导言 纵览线上各种AngularJS教程,大部分都是基础与一些 ...

  9. sqlserver字符串拆分(split)方法汇总

    --方法0:动态SQL法declare @s varchar(100),@sql varchar(1000)set @s='1,2,3,4,5,6,7,8,9,10'set @sql='select ...

  10. [转载]VMWare网络连接透析

    http://blog.csdn.net/struggleyb/article/details/1102214 以前在学校,VMWare里面的Gentoo Linux是采用network bridge ...