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
相關文章
相關標籤/搜索