Ubuntu环境下Tornado环境部署

这是以前在学tornado时记的一点小东西,可是在服务器上搭环境时其实仍是很简单的(比起rails而言,手动斜眼笑)
可是安装过程当中也遇到一些问题就记下来python

安装

先安装python的pip,这个相似于ruby的gem,用于包管理和下载
而后用命令能够下载tornadomysql

apt-get install python-pip
pip install tarnado

数据库配置

MYSQL

我以前用的是mysql,而后使用的ORM工具是sqlalchemy,固然首要的仍是先安装mysqlweb

可是安装前有一些必要的准备工做。就是装下面的包,使用apt-get install命令便可sql

libmysqld-dev
libmysqlclient-dev
python-dev

前两个包须要安装的缘由是,经过apt-get install 安装的mysql没有mysql_config配置文件,会在后面要配置mysql时遇到问题
后一个是为了用来编译安装包
(安装顺序切勿不要混乱,由于以前这个地方我尝试过前两个包的安装顺序颠倒会有问题,我也不知道为何,若是装了python-dev后运行python setup.py build还不行。能够重装libmysqlclient-dev)数据库

下载mysqlruby

wget http://sourceforge.net/projects/mysql-python/files/mysql-python/1.2.3/MySQL-python-1.2.3.tar.gz

解压服务器

tar zxvf MySQL-python-1.2.3.tar.gz

安装app

$ cd MySQL-python-1.2.3
$ python setup.py build
$ python setup.py install  //这里就是前面提到的运行python setup.py build可能会出问题,能够重装libmysqlclient-dev试试

若是遇到以下的错误ssh

EnvironmentError: mysql_config not found

首先查找mysql_config的位置,使用下面的命令找到所在目录webapp

find / -name mysql_config

好比个人在

/usr/local/mysql/bin/mysql_config

再修改setup_posix.py文件,在26行:

mysql_config.path = “mysql_config”

修改mysql_config的path为刚刚用find找到的路径,代码以下:

mysql_config.path = “/usr/local/mysql/bin/mysql_config

以后就可使用tornado进行开发了

若是要向服务器传代码可使用scp和服务器进行数据交换
具体操做是 scp filename root@XXX.XXX.XXX.XXX:~
接下来按照提示输入密码,而后filename文件会被传至根目录下

部署方式

tornado通常是运行包含启动应用程序的main.py文件来运行webapp的,部署时咱们须要使用

python main.py &

后面的&的意思是这个程序会之后台程序运行
若是想保持进程在ssh下线后还继续挂在服务器上,可使用

nohup python main.py &

这样这个程序的log信息会输出到nohup.out文件中

关闭服务

若是这个程序在前台跑,那么只须要ctrl + c就能够关掉了,若是在后台则须要先查看进程的pid号
有一个查看活跃的联网程序端口占用的方法:

netstat -anp

查看3000端口:

netstat -anp |grep 3000

会显示

Proto Recv-Q   Send-Q   Local Address           Foreign Address         State       PID/Program name
tcp        0        0   0.0.0.0:3000            0.0.0.0:*               LISTEN      12074/ruby

这里我在3000端口跑的是一个rails的进程,使用kill 12074能够杀掉这个进程

若是是tornado部署在这里可能会显示

tcp        0        0   0.0.0.0:3000            0.0.0.0:*               LISTEN      25239/python

可是有的时候使用这个命令因为本身进程比较多的话就很难找,可使用

pgrep -l python

这个命令的做用是显示含有python关键字的进程的pid号,好比

25239 python

而后使用 kill 25239 命令就能够关闭这个进程了
pgrep的-l参数若是进程比较少,有时能够省略,其做用是显示进程名字,若是不加时结果就是

pgrep  python
25239
相关文章
相关标签/搜索