Linux游戏服务器之旅3_python
Centos系统默认已经装有python2.6版本,对于这个已经够用了
搭建WEB服务器用到了tornado框架
在linux服务器安装tornado
下载tornado版本
但是由于谷歌被封下载一直失败
我这边是找朋友×××下载
手动下载安装: Download tornado-2.2.1.tar.gz
tar
xvzf tornado-2.2.1.
tar
.gz
cd
tornado-2.2.1
Python setup.py build
sudo
python setup.py
install
安装完成之后 进入解压目录
Python helloWord.py
如果这步有错误
python2.*上出现ImportError: No module named backports.ssl_match_hostname错误
解决办法:
tornado.3.*运行在python2.*上必须要安装backports.ssl_match_hostname包
backports.ssl_match_hostname下载链接:Http://pan.baidu.com/s/1jGn18Bc 密码:yiz3
安装次包前需先安装setuptools
setuptools下载链接:http://pan.baidu.com/s/12AYdw 密码:xozt
安装方法均为python库的正常安装方法:
python setup.py build
python setup.py install
然后127.0.0.1:8888
就可以访问了
如果用其他电脑访问 则要注意防火墙是否允许8888端口
但是执行过这个操作之后就不会有问题 这个得仔细去看下防火墙,以此作为记录
iptables -F回车
iptables -t nat -F回车
Supervisor安装和配置:(以后细细研究)
每次手动在命令行启动应用是比较麻烦的,我们还需要一个能够方便的管理服务进程的工具,包括自动重启进程等,而Supervisor的作用在这里就可以体现了。我们使用它来管理这个Tornado web server相关的进程。首先安装之:
yum install python-setuptools
$ easy_install supervisor
echo_supervisord_conf
会显示一个配置模版:
安装完毕后,生成Supervisor的配置文件并编辑:
$ echo_supervisord_conf > /etc/supervisord.conf$ vim /etc/supervisord.conf
在文件末尾加入:
[program:hello]command=python /var/www/index.py --port=8888directory=/var/wwwautorestart=trueredirect_stderr=true
这段配置主要作用就是在Supervisor启动的时候自动启动我们的hello应用对应的Tornado web server进程并纳入管理,具体配置项的意义,可以参考Supervisor官方文档http://supervisord.org/。配置完毕后,我们就可以启动管理了:
$ supervisorctl start all
Nginx安装和配置:
首先安装Nginx,如果已安装可以忽略:
$ rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm$ yum install nginx
接下来是Nginx的配置,我们需要使用Nginx来将web请求代理到Tornado web server,新建配置文件:
$ vim /etc/nginx/conf.d/tornado.conf
输入如下内容:
upstream tornado { server 127.0.0.1:8888;} server { listen 80; root /var/www; index index.py index.html; server_name server; location / { if (!-e $request_filename) { rewrite ^/(.*)$ /index.py/$1 last; } } location ~ /index\.py { proxy_pass_header Server; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_pass http://tornado; }}
重启Nginx:
$ service nginx restart
现在就可以使用Nginx配置中指定的域名直接访问我们的hello应用了。
5.安装protocobuf:
1. 下载protobuf源代码(当前最新版本为:2.5.0)
#cd /opt
#wget https://protobuf.Googlecode.com/files/protobuf-2.5.0.tar.gz
2. 解压,编译,安装
#tar zxvf protobuf-2.5.0.tar.gz
#cd protobuf-2.5.0
#./configure
#make
#make check
#make install
3. 继续安装protobuf的python模块(如果不用python,可跳过这一步)
#cd ./python
#python setup.py build
#python setup.py test
#python setup.py install
4. 安装完成,验证Linux命令
#protoc –version
5. 验证Python模块是否被正确安装
#python
>>>import google.protobuf
如果没有报错,说明安装正常。
安装连接数据库:
yum install Mysql-python
有了他就可以正常连接数据库
import mysqldb
def main():
print '*** Connecting todatabase'
cxn=Mysqldb.connect(host='192.168.1.108',user='root', passwd='123456', db='test')
if not cxn:
print 'ERROR: connection not supported,exiting'
return
cur=cxn.cursor()
print '*** Creatingusers table'
cur.execute('CREATETABLE users(login VARCHAR(8), uid INT)')
print '*** Insertingsome users'
cur.execute("INSERTINTO users VALUES('john', 7000)")
cur.execute("INSERTINTO users VALUES('jane', 7001)")
cur.execute("INSERTINTO users VALUES('bob', 7200)")
print '*** Search forusers starting with j'
cur.execute("SELECT *FROM users WHERE login LIKE 'j%'")
for data incur.fetchall():
print '%s\t%s' % data
cur.close()
cxn.commit()
cxn.close()
if __name__ == '__main__':
main()
安装DBUtils:
http://blog.sina.com.cn/s/blog_5e2642f40100xxfc.html
安装为顶层模块
如果你打算在除了Webware之外的程序中使用,推荐安装为顶层模块:
解压安装
python setup.py install
编译大厅服务器代码的时候报错...百度一大堆没有用的东西,最后google了一下发现下面一段话
3 down vote | if you are using redhat,fedora, centos :
for my case I coouldnot install it using pip
|
完美解决!
相关文章