最近在这个博客,我开始用这样带"/"的标题,原因是方便搜索.因为网上关于python的资料实在是少的可怜.能多做点贡献就多做点贡献吧,大家一起努力
话说前端时间蓝色理想的一个朋友给了我一份DreamHost的空间,于是我的python就有用武之地了.结果...折腾了快一个星期,才把这个python搞定,现在大家看这个网址: http://181920.net 就是用web.py输出的结果. 让我们从头开始,在DreamHost的空间上装个web.py
前期准备
工欲善其事,必先利其器.要在DreamHost上装个web.py得准备下列工具:
- 运行shell命令和服务器端交互的软件:这个我是用putty
- 上传文件用的ftp软件:这个我用cuteftp
- python脚本编辑软件:这个我用IDLE
如何能操纵服务端
这个可以想象一下远程连接是怎么回事.一般DreamHost的用户会有一个帐号用来远程登陆到服务端,然后就可以进行一些操作.下载需要的文件,安装文件,配置apache服务器,配置mysql服务器等等等等.如果你要问你配置了你的,会不会影响到别人.我想应该是不会影响的.
关于putty
putty是DreamHost推荐使用的工具.用来输入命令和服务端交互.稍微小白些的解释,就是你通过putty和服务端连接,然后输入一些命令行,可以操作服务端的文件什么的.类似于在本机用cmd打开的命令行提示符那样的操作. 看这里的介绍: http://wiki.dreamhost.com/Putty 可以在这里下载: http://www.chiark.greenend.org.uk/~sgtatham/putty/ 安装后打开putty,会让你输入服务器地址,这个地址是用户名@主机名,选择ssh登陆,完成后打开,会提示你输入密码.注意这个时候你开始在键盘敲你的密码,但是在putty的界面上并不会显示什么,直到你输入完密码,按回车.如果密码正确,就会出来一个欢迎界面,否则putty就会提示密码错误,要求再次输入.还有一种情况是密码正确了,但是putty自动关闭了.这是因为你的账户还没有使用shell的权限,需要到用户面板开通一下. 然后就是开始输入命令了,一些常用的命令,比如dir显示当前目录,cd进入到某个目录,mkdir新建文件夹,wget远程下载,tar解压缩... 基本明白了吧. 还有,如果要在里面粘贴文本,只要点击一下右键就可以.
关于ftp和关于IDLE
省略了.
开始安装web.py 基本上就是打开这个页面 http://wiki.dreamhost.com/Web.py 照着一步一步的来. 我在这里来个难点解说.
应该在哪个目录下? 是在你的web主目录下
我不用python2.4怎么办? 改成#!/usr/bin/env python2.3 就可以.
怎么修改web.py's web/wsgi.py? 这个其实挺费了一番功夫,一开始没看明白那些加加减减是什么意思,后来明白过来,就是打开wsgi.py这个文件,把runfcgi()里面的两句替换一下. import flup.server.fcgi as flups return flups.WSGIServer(func, multiplexed=True, bindAddress=addr).run() 替换成 import fcgi as flups return flups.WSGIServer(func, multiplexed=False, bindAddress=addr).run() 要注意不要有多余的空格.
怎么使用vim命令修改.htaccess? 首先是敲入vim .htaccess 然后复制那一段,贴上去.然后检查下对不对.我复制粘贴的时候经常会把一开始Options的字母"O"给弄丢了,仔细检查下.没问题后,摁键盘上的ESC键,这个时候就进入命令模式,在输入":X",这是保存退出的意思.这就可以了. 如果不放心,可以在使用vim .htaccess命令,这个时候一般会提示文件已经存在,让你选择打开的模式,用只读模式看下有没有问题吧. 大家可以看看这个文章,我觉得挺好的: http://man.lupaworld.com/content/manage/ringkee/vim.htm
关于FCGI和web.py
在DreamHost的web.py是这么运行的: web请求->apache->FCGI->web.py->.cgi程序页. 我不知道对不对,暂且这么理解吧. 但是如果你是和我一样,在用windows,那就会觉得有这样的问题:在本地如何编写程序,然后传到服务端看效果.因为我觉得是在本地在装apache和fcgi会是非常麻烦的事情,不如直接双击.py文件就自动启动一个web server简单啊. 后来我发现其实是可以实现的.我们来对比下web.py的程序和web.py+fcgi的程序,不同的就是最后如何解析文件: web.py: if __name__=='__main__': web.run(urls,globals())
web.py+fcgi: def runfcgi_apache(func): web.wsgi.runfcgi(func, None) if __name__ == "__main__": web.wsgi.runwsgi = runfcgi_apache web.run(urls, globals())
所以,我们只管在本地写我们的程序,最后上传到服务端的时候,就把最后的webrun部分改一下就可以.
稍微麻烦了些,但是比较简单快速的办法
其他
另外,我现在还是运行python2.3,我已经装了python2.5,但是还不清楚该怎么调用.需要再研究下.
暂时记得起来的问题就这么多,以后有需要了再补充.
出处:蓝色理想
责任编辑:moby
上一页 下一页 web.py的说明一
◎进入论坛网络编程版块参加讨论
|