Ubuntu环境下Tornado环境部署

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

安装

先安装python的pip,这个类似于ruby的gem,用于包管理和下载 然后用命令可以下载tornado

apt-get install python-pip
pip install tarnado

数据库配置

MYSQL

我之前用的是mysql,然后使用的ORM工具是sqlalchemy,当然首要的还是先安装mysql

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

libmysqld-dev
libmysqlclient-dev
python-dev

前两个包需要安装的原因是,通过apt-get install 安装的mysql没有mysql_config配置文件,会在后面要配置mysql时遇到问题 后一个是为了用来编译安装包 (安装顺序切勿不要混乱,因为之前这个地方我尝试过前两个包的安装顺序颠倒会有问题,我也不知道为什么,如果装了python-dev后运行python setup.py build还不行。可以重装libmysqlclient-dev)

下载mysql

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

安装

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

如果遇到如下的错误

EnvironmentError: mysql_config not found

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

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 

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏杂七杂八

Anaconda安装与初步使用

Anaconda是一个用于科学计算的Python发行版,支持 Linux, Mac, Windows系统,提供了包管理与环境管理的功能,可以很方便地解决多版本...

4865
来自专栏实战docker

实战docker,编写Dockerfile定制tomcat镜像,实现web应用在线部署

最初在tomcat上部署web应用的方式,是通过maven的maven-compiler-plugin插件先打成war包,再将war包复制到tomcat的web...

5715
来自专栏云计算教程系列

Kubernetes DNS服务简介

域名系统(DNS)是一种用于将各种类型的信息(例如IP地址)与易于记忆的名称相关联的系统。默认情况下,大多数Kubernetes群集会自动配置内部DNS服务,以...

2683
来自专栏云计算教程系列

如何在CentOS上创建Kubernetes集群

在本教程中,您将使用Ansible和Kubeadm从头开始设置Kubernetes集群,然后给它部署一个容器化的Nginx程序。

5.8K12
来自专栏Rainbond开源「容器云平台」

「Rainbond最佳实践」Tomcat配置Redis实现Session共享

1992
来自专栏散尽浮华

Mesos+Zookeeper+Marathon的Docker管理平台部署记录(2)--负载均衡marathon-lb

之前介绍了Mesos+Zookeeper+Marathon的Docker管理平台部署记录(1)的操作,多余的废话不说了,下面接着说下在该集群环境下的负载均衡ma...

4369

6 利用Docker .NET应用程序模板制作您的容器应用程序(第2部分)

在最后一篇文章中,我们用各种模板进行了设置。现在我们需要让他们工作起来了。

2278
来自专栏达摩兵的技术空间

docker下部署jenkins(一)

本文带你在docker中安装jenkins服务,为入门级别的介绍,建议阅读时间10-15min.

6863
来自专栏Linux运维学习之路

day10、nfs+rsync全网备份及实时同步

题目要求 注意:博主使用的系统为: [root@web01 ~]# uname -a Linux web01 2.6.32-696.el6.x86_64 #1...

6356
来自专栏智能合约

centos安装lnmp环境

4075

扫码关注云+社区

领取腾讯云代金券