這是以前在學tornado時記的一點小東西,可是在服務器上搭環境時其實仍是很簡單的(比起rails而言,手動斜眼笑)
可是安裝過程當中也遇到一些問題就記下來python
先安裝python的pip,這個相似於ruby的gem,用於包管理和下載
而後用命令能夠下載tornadomysql
apt-get install python-pip pip install tarnado
我以前用的是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