专栏首页python3Linux游戏服务器之旅3_python

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

ImportError: No module named Crypto.Cipher

编译大厅服务器代码的时候报错...百度一大堆没有用的东西,最后google了一下发现下面一段话

3 down vote

if you are using redhat,fedora, centos :sudo yum install pycryptofor my case I coouldnot install it using pipshare|improve this answer

share|improve this answer

share|improve this answer

完美解决!

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【Python基础】08、Python模

     可以将代码量较大的程序分割成多个有组织的、彼此独立但又能互相交互的代码片段,这些自我包含的有组织的代码段就是模块

    用户2398817
  • centos5.6 安装 python

    转自:http://blog.csdn.net/dqatsh/article/details/6592989

    用户2398817
  • window-64安装python-my

        安装MySQL-python-1.2.3.win-amd64-py2.7.exe

    用户2398817
  • 【Python基础】08、Python模

     可以将代码量较大的程序分割成多个有组织的、彼此独立但又能互相交互的代码片段,这些自我包含的有组织的代码段就是模块

    用户2398817
  • python学习笔记1-理解Python语言

    本章主要介绍一下python语言的相关知识,包括其语言类型、作为面向对象的3大特性以及5大原则,在末尾介绍了其优缺点。 python是解释型的脚本语言 解...

    锦小年
  • 为什么学习python、python的安

    1、python易学,语法简单 2、python的强大得到了很多的大公司的肯定例如Google, Yahoo!, IBM等等都在使用python,一些我们耳熟能...

    用户2398817
  • setup.py文件是什么

    在安装python的相关模块和库时,我们一般使用“pip install 模块名”或者“python setup.py install”,前者是在线安装,会安...

    神秘的寇先森
  • mac> python3 安装Djang

    说明:mac系统自带了python2.x (在/System/Library/Frameworks/Python.Frameworks/Version/2.x/...

    用户2398817
  • 充分理解 python -m mod

    一般情况下,我们会想当然的认为,有无参数 -m 对程序会有不同的影响,但是很可惜,第二种写法是会在程序执行之后报错的。其正确的写法是:丢掉 .py 后缀。

    用户2398817
  • centos minimal 需要安装的工具(仅供参考)

    作者:Ryan 链接:https://www.zhihu.com/question/25126650/answer/152530370 来源:知乎 ...

    suveng

扫码关注云+社区

领取腾讯云代金券