腾讯云部署Flask应用

 

因为新浪云如今难免费了。并且云豆也用完了。因此去腾讯云申请了个学生云主机,一元一个月。html

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

下面说部署过程:mysql

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

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

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

# 启动安全模式 /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

 

注:由于是个人博客搬迁,建立好数据库以后还须要用脚本把数据导入(这个数据脚本是在新浪云导出的)centos

 

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. 安装VirtualEnvbash

由于不一样的项目会依赖不一样的依赖包,为了方便,把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

相关文章
相关标签/搜索