boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 安装web.py小记
相关主题
Django怎么学
怎么设计前端网页? (转载)
Python应用核心编程 (第3版)
后台python wsgi, 前端html, css, javascript
问个Python的问题
django admin style sheets
学习 python Django 的一个问题
Angularjs + Spark ?
Question of building apache module.
Question of apache module
相关话题的讨论汇总
话题: apache话题: python话题: wsgi话题: windows话题: module
进入Programming版参与讨论
1 (共1页)
c********l
发帖数: 8138
1
周末的时候在家里闲得无聊,于是想体验一把Python的web server。本来以为,无非是
手动地实现一个类似于WAMP的功能,应该花不了太长时间。但最后的事实是:各种问题
不断,插曲实在太多,花费了偶大半天的时间,于是把安装经验分享在网上,希望后来
人少走弯路。
web.py在安装之前,需要有几个dependency: web server, Python, CGI/WSGI module,
Database, Database driver/adaptor.
第一步:web server
web.py的官方页面上说既可以用LightTPD也可以用Apache,考虑到Apache更普遍,平时
也经常用Apache,于是决定使用Apache。在官网上找到Apache 2.4 for windows x64下
载,安装,设端口为4567,最后start。发现:在服务器本地访问http://localhost:4567/时,一切OK。但是如果用远程机器上的浏览器访问http://my.server.com:4567/时,浏览器会长时间显示空白页面,最后超时报错。一开始怀疑可能是路由器没有打开NAT映射的问题,于是打开4567端口映射,再试,问题照旧。于是采取更激进的措施:索性在路由器上开启DMZ,同时DMZ指向安装了Apache的那台机器的IP,问题依然照旧。再打开Apache的logs,发现凡是本地访问的信息都会在上面一条不落地记录地一清二楚,但是远程的访问信息一点痕迹也没有。于是考虑到是不是Windows Server 2008自带的防火墙的问题。后来证实果然是: 如果没有在管理面板中明确指明允许端口或进程,那么Windows 2008的防火墙就会自动默认禁止相关的链接。解决方案有几种:添加"allow port 4567"的rule;添加"allow httpd.exe"的rule;甚至关闭windows Server自带的防火墙。本人选择了第二种方案,即"allow httpd.exe"的rule。最后终于出现Apache那“It works!”的界面
第二步:安装Python
由于本人之前没有学过Python,机器上也没有任何Python Legacy Code, 所以选择了
稳定版本中最高的3.3。在安装python时倒没什么问题
第三步:安装WSGI Module
在web.py的说明上有N种module,选择了最推荐的WSGI. 但是其在Google Project上的官
网做得极不人性化。好不容易在downloads那一栏里面找到了一个“mod_wsgi-win32-
ap22py31-3.3.so”。于是下载之,放到Apache安装目录下的modules目录下,并且修改
了Apache的httpd.conf,往里面加了一行LoadModules。再之后Apache始终启动不起来,
一直报错:
httpd.exe: Syntax error on line 129 of C:/Program Files (x86)/Apache
Software Foundation/Apache2.4/conf/httpd.conf: Cannot load C:/Program Files
(x86)/Apache Software Foundation/Apache2.4/modules/mod_wsgi.so into server:
The specified module could not be found.反复检查来检查去,确认那路径明明是正
确的。既然路径正确,为什么会显示“syntax error”和“cannot be found”呢?查
了一查stackoverflow,说是32位版本的Apache + WSGI Module与64位版本的Python不
兼容。既然这样,索性从头开始,卸载了x64的Python,重新安装了x32的Python,但问
题照旧…………继续做功课,无意中发现了一个叫apachelounge.com的网站,从上面下
载了x64版的Apache,又找到了一个“Unofficial Windows Binaries for Python
Extension Packages”的个人网站,下载了x64版的mod_wsgi。如此一来,Apache, mod
_wsgi, Python这三者都是64位的了!Apache顺利启动!
第四步:安装Database,这一步也是相当顺利,跳过
第五步:psycopg
和WSGI Module类似,官网上所提供的下载主要是源文件。自己下载,并在windows环境
下编译虽然可行,但会非常非常麻烦。好在官网上提供了一个链接,指向stickpeople.
com,上面提供了for Python 3.2 & Windows x64的下载。看到那里,心中一乐心想“
大功告成了”。结果发现实在是高兴得太早了,在执行其安装程序时,提示找不到
python的目录。原因实在再也明显不过:因为psycopg所对应的版本是python 3.2,然
而机器上已经安装了python 3.3。一个3.3,另一个3.2,自然不兼容。在山穷水复之际
,突然想到了刚才的那个“Unofficial Windows Binaries for Python Extension
Packages”的个人网站(顺便赞一把网站作者Christoph Gohlke),上面赫然列了一项
for Python 3.3& Windows x64的下载,遂下载之。
插曲:虽然psycopg 2.4.6 on Python 3.3大体可以运行,但是正规的试验表明,存在
两个regression test 没有通过:testByteaHexCheckFalsePositive,
testAdaptBytearray。大部分人不会用到这两项功能,也不能否定将来会有小隐患。
第六步:设置Apache上的virtual directory
如果希望在一台主机上部署多个不同功能的网站,那么virtual server/directory必不
可少。这可以在Apache的设置文件中轻易设置。设置完了之后等待我的依然是麻烦--
系统只显示:“403 forbidden”出错信息。怎么改都无效。最后发现是Apache 2.2与2
.4之间的改动的问题。
在Apache 2.2中,只需要加上
Order allow,deny
Allow from all
就行了,而在Apache 2.4中,只有给相应的条目加上
Require all granted
才算数。
然后呢?然后,就没有然后了
d********g
发帖数: 10550
2
这作者都挂了,不要学了

module,

【在 c********l 的大作中提到】
: 周末的时候在家里闲得无聊,于是想体验一把Python的web server。本来以为,无非是
: 手动地实现一个类似于WAMP的功能,应该花不了太长时间。但最后的事实是:各种问题
: 不断,插曲实在太多,花费了偶大半天的时间,于是把安装经验分享在网上,希望后来
: 人少走弯路。
: web.py在安装之前,需要有几个dependency: web server, Python, CGI/WSGI module,
: Database, Database driver/adaptor.
: 第一步:web server
: web.py的官方页面上说既可以用LightTPD也可以用Apache,考虑到Apache更普遍,平时
: 也经常用Apache,于是决定使用Apache。在官网上找到Apache 2.4 for windows x64下
: 载,安装,设端口为4567,最后start。发现:在服务器本地访问http://localhost:4567/时,一切OK。但是如果用远程机器上的浏览器访问http://my.server.com:4567/时,浏览器会长时间显示空白页面,最后超时报错。一开始怀疑可能是路由器没有打开NAT映射的问题,于是打开4567端口映射,再试,问题照旧。于是采取更激进的措施:索性在路由器上开启DMZ,同时DMZ指向安装了Apache的那台机器的IP,问题依然照旧。再打开Apache的logs,发现凡是本地访问的信息都会在上面一条不落地记录地一清二楚,但是远程的访问信息一点痕迹也没有。于是考虑到是不是Windows Server 2008自带的防火墙的问题。后来证实果然是: 如果没有在管理面板中明确指明允许端口或进程,那么Windows 2008的防火墙就会自动默认禁止相关的链接。解决方案有几种:添加"allow port 4567"的rule;添加"allow httpd.exe"的rule;甚至关闭windows Server自带的防火墙。本人选择了第二种方案,即"allow httpd.exe"的rule。最后终于出现Apache那“It works!”的界面

c********l
发帖数: 8138
3
which作者?
apache?
python?
postgre?
psycopg?
wsgi module?
web.py?

【在 d********g 的大作中提到】
: 这作者都挂了,不要学了
:
: module,

d********g
发帖数: 10550
4
唉,不要两耳不闻窗外事……
http://en.wikipedia.org/wiki/Aaron_Swartz

【在 c********l 的大作中提到】
: which作者?
: apache?
: python?
: postgre?
: psycopg?
: wsgi module?
: web.py?

d********g
发帖数: 10550
5
web.py
另外是postgres或者PostgreSQL,没有postgre的说法……

【在 c********l 的大作中提到】
: which作者?
: apache?
: python?
: postgre?
: psycopg?
: wsgi module?
: web.py?

c********l
发帖数: 8138
6
他的大名我当然知道
为了纪念他,偶还是要学

【在 d********g 的大作中提到】
: 唉,不要两耳不闻窗外事……
: http://en.wikipedia.org/wiki/Aaron_Swartz

s*******a
发帖数: 8827
7
在windows上折腾这些是自虐啊。
有钱还是上mac吧,对自己好一点。
mac上一个terminal就甩windows9条街

module,

【在 c********l 的大作中提到】
: 周末的时候在家里闲得无聊,于是想体验一把Python的web server。本来以为,无非是
: 手动地实现一个类似于WAMP的功能,应该花不了太长时间。但最后的事实是:各种问题
: 不断,插曲实在太多,花费了偶大半天的时间,于是把安装经验分享在网上,希望后来
: 人少走弯路。
: web.py在安装之前,需要有几个dependency: web server, Python, CGI/WSGI module,
: Database, Database driver/adaptor.
: 第一步:web server
: web.py的官方页面上说既可以用LightTPD也可以用Apache,考虑到Apache更普遍,平时
: 也经常用Apache,于是决定使用Apache。在官网上找到Apache 2.4 for windows x64下
: 载,安装,设端口为4567,最后start。发现:在服务器本地访问http://localhost:4567/时,一切OK。但是如果用远程机器上的浏览器访问http://my.server.com:4567/时,浏览器会长时间显示空白页面,最后超时报错。一开始怀疑可能是路由器没有打开NAT映射的问题,于是打开4567端口映射,再试,问题照旧。于是采取更激进的措施:索性在路由器上开启DMZ,同时DMZ指向安装了Apache的那台机器的IP,问题依然照旧。再打开Apache的logs,发现凡是本地访问的信息都会在上面一条不落地记录地一清二楚,但是远程的访问信息一点痕迹也没有。于是考虑到是不是Windows Server 2008自带的防火墙的问题。后来证实果然是: 如果没有在管理面板中明确指明允许端口或进程,那么Windows 2008的防火墙就会自动默认禁止相关的链接。解决方案有几种:添加"allow port 4567"的rule;添加"allow httpd.exe"的rule;甚至关闭windows Server自带的防火墙。本人选择了第二种方案,即"allow httpd.exe"的rule。最后终于出现Apache那“It works!”的界面

a9
发帖数: 21638
8
啥terminal这么牛逼?
windows上的putty很不错啊。

非是
问题
后来
平时
x64下

【在 s*******a 的大作中提到】
: 在windows上折腾这些是自虐啊。
: 有钱还是上mac吧,对自己好一点。
: mac上一个terminal就甩windows9条街
:
: module,

s*******a
发帖数: 8827
9
putty跟terminal完全两码事

【在 a9 的大作中提到】
: 啥terminal这么牛逼?
: windows上的putty很不错啊。
:
: 非是
: 问题
: 后来
: 平时
: x64下

y*******g
发帖数: 6599
10
装个linux就好了

【在 s*******a 的大作中提到】
: 在windows上折腾这些是自虐啊。
: 有钱还是上mac吧,对自己好一点。
: mac上一个terminal就甩windows9条街
:
: module,

相关主题
后台python wsgi, 前端html, css, javascript
问个Python的问题
django admin style sheets
学习 python Django 的一个问题
进入Programming版参与讨论
B***i
发帖数: 724
11
没有用过python来玩web.py, 还真是自虐
a9
发帖数: 21638
12
看上去跟cherrypy+mako有点像。

【在 B***i 的大作中提到】
: 没有用过python来玩web.py, 还真是自虐
c********l
发帖数: 8138
13
mako? 什么东西?和moco有什么联系?

【在 a9 的大作中提到】
: 看上去跟cherrypy+mako有点像。
E*****m
发帖数: 25615
14
連 python 都沒學過, 沒搞懂你裝web.py 做什麼。

module,

【在 c********l 的大作中提到】
: 周末的时候在家里闲得无聊,于是想体验一把Python的web server。本来以为,无非是
: 手动地实现一个类似于WAMP的功能,应该花不了太长时间。但最后的事实是:各种问题
: 不断,插曲实在太多,花费了偶大半天的时间,于是把安装经验分享在网上,希望后来
: 人少走弯路。
: web.py在安装之前,需要有几个dependency: web server, Python, CGI/WSGI module,
: Database, Database driver/adaptor.
: 第一步:web server
: web.py的官方页面上说既可以用LightTPD也可以用Apache,考虑到Apache更普遍,平时
: 也经常用Apache,于是决定使用Apache。在官网上找到Apache 2.4 for windows x64下
: 载,安装,设端口为4567,最后start。发现:在服务器本地访问http://localhost:4567/时,一切OK。但是如果用远程机器上的浏览器访问http://my.server.com:4567/时,浏览器会长时间显示空白页面,最后超时报错。一开始怀疑可能是路由器没有打开NAT映射的问题,于是打开4567端口映射,再试,问题照旧。于是采取更激进的措施:索性在路由器上开启DMZ,同时DMZ指向安装了Apache的那台机器的IP,问题依然照旧。再打开Apache的logs,发现凡是本地访问的信息都会在上面一条不落地记录地一清二楚,但是远程的访问信息一点痕迹也没有。于是考虑到是不是Windows Server 2008自带的防火墙的问题。后来证实果然是: 如果没有在管理面板中明确指明允许端口或进程,那么Windows 2008的防火墙就会自动默认禁止相关的链接。解决方案有几种:添加"allow port 4567"的rule;添加"allow httpd.exe"的rule;甚至关闭windows Server自带的防火墙。本人选择了第二种方案,即"allow httpd.exe"的rule。最后终于出现Apache那“It works!”的界面

c********l
发帖数: 8138
15
不正是为了学习么
话说回来,正文仅仅是安装了所有的第三方dependency,连web.py的一根毛都没有碰
我标题中提web.py只是为了寻求一种不打那么多关键字的方法
为啥你们这些回复只聚焦在web.py?

【在 B***i 的大作中提到】
: 没有用过python来玩web.py, 还真是自虐
d********g
发帖数: 10550
16
装Linux也行。搞open source的确实Windows不好用

【在 s*******a 的大作中提到】
: 在windows上折腾这些是自虐啊。
: 有钱还是上mac吧,对自己好一点。
: mac上一个terminal就甩windows9条街
:
: module,

d********g
发帖数: 10550
17
web.py好比PHP,众人震精鸟

【在 c********l 的大作中提到】
: 不正是为了学习么
: 话说回来,正文仅仅是安装了所有的第三方dependency,连web.py的一根毛都没有碰
: 我标题中提web.py只是为了寻求一种不打那么多关键字的方法
: 为啥你们这些回复只聚焦在web.py?

t***a
发帖数: 416
18
用gentoo, 一切从source code重新编译。。。。

【在 d********g 的大作中提到】
: 装Linux也行。搞open source的确实Windows不好用
d********g
发帖数: 10550
19
不怕伤硬盘的就用

【在 t***a 的大作中提到】
: 用gentoo, 一切从source code重新编译。。。。
c********l
发帖数: 8138
20
我这么反问吧:
即使我不用web.py而是用Django,
原文中所述的那些Apache, Virtual Directory,mod_wsgi那些东东,
不也一样都要go through么?

【在 d********g 的大作中提到】
: web.py好比PHP,众人震精鸟
相关主题
Angularjs + Spark ?
Question of building apache module.
Question of apache module
哪里可以下到有一定规模的python open source code?
进入Programming版参与讨论
c********l
发帖数: 8138
21
你都没仔细看原文

【在 E*****m 的大作中提到】
: 連 python 都沒學過, 沒搞懂你裝web.py 做什麼。
:
: module,

d********g
发帖数: 10550
22
Apache也是PHP,mod_wsgi也是PHP,MySQL也是PHP
隔行如隔山啊

【在 c********l 的大作中提到】
: 我这么反问吧:
: 即使我不用web.py而是用Django,
: 原文中所述的那些Apache, Virtual Directory,mod_wsgi那些东东,
: 不也一样都要go through么?

c********l
发帖数: 8138
23
????怎么扯到PHP上了??

【在 d********g 的大作中提到】
: Apache也是PHP,mod_wsgi也是PHP,MySQL也是PHP
: 隔行如隔山啊

d********g
发帖数: 10550
24
PHP是一个形容词在这里
另外web.py都不支持python 3,你装个3干嘛……

【在 c********l 的大作中提到】
: ????怎么扯到PHP上了??
c********l
发帖数: 8138
25

elaborate??BTW,我可不怎么会PHP.....看着满屏的"->"就让我回忆起恶梦般的C++
有哪些轻量的framework支持python 3?

【在 d********g 的大作中提到】
: PHP是一个形容词在这里
: 另外web.py都不支持python 3,你装个3干嘛……

d********g
发帖数: 10550
26
轻量级的有Bottle。Django 1.5也带了支持其实

【在 c********l 的大作中提到】
:
: elaborate??BTW,我可不怎么会PHP.....看着满屏的"->"就让我回忆起恶梦般的C++
: 有哪些轻量的framework支持python 3?

B***i
发帖数: 724
27
很多公司都还停留在python 2.6, 2.7呢。 你装个3.3, 唉
c********l
发帖数: 8138
28
昨天本版不是还有人说bottle 其实是一个吊丝程序员的浆糊作品?
那就只能上Django 了?

【在 d********g 的大作中提到】
: 轻量级的有Bottle。Django 1.5也带了支持其实
d********g
发帖数: 10550
29
那是我说的好吧。也不算浆糊,质量上是不如Django。Django入门是绝对没错的,不要
听信什么重量级的传闻,你自己搞也可以搞成轻量级的

【在 c********l 的大作中提到】
: 昨天本版不是还有人说bottle 其实是一个吊丝程序员的浆糊作品?
: 那就只能上Django 了?

d********g
发帖数: 10550
30
传统Django + PostgreSQL的应用看disqus的文章,好多人是从Django顺带学Python,
而不是先会Python再学Django
新的趋势看Pinterest的部署文章,大量用AWS

【在 d********g 的大作中提到】
: 那是我说的好吧。也不算浆糊,质量上是不如Django。Django入门是绝对没错的,不要
: 听信什么重量级的传闻,你自己搞也可以搞成轻量级的

相关主题
用python开发website
Python based web frameworks
python和工作一问
怎么学习python
进入Programming版参与讨论
E*****m
发帖数: 25615
31
我看了, 你有興趣應該先學 Python, 再來搞這些。

【在 c********l 的大作中提到】
: 你都没仔细看原文
c********l
发帖数: 8138
32
links plz?

【在 d********g 的大作中提到】
: 传统Django + PostgreSQL的应用看disqus的文章,好多人是从Django顺带学Python,
: 而不是先会Python再学Django
: 新的趋势看Pinterest的部署文章,大量用AWS

c********l
发帖数: 8138
33
python不就是那么一些么?
没有括号,缩进,for和if用冒号,没有类似java的for loop
tuples, lambda,外加一些字符的class...神马的
偶之前还在版上贴过python的程序呢
http://www.mitbbs.com/article/Programming/31245807_0.html
这些东西,在真神面前是小儿科,不过编编web应该够用了

【在 E*****m 的大作中提到】
: 我看了, 你有興趣應該先學 Python, 再來搞這些。
a9
发帖数: 21638
34
cherrypy好像支持

【在 c********l 的大作中提到】
: python不就是那么一些么?
: 没有括号,缩进,for和if用冒号,没有类似java的for loop
: tuples, lambda,外加一些字符的class...神马的
: 偶之前还在版上贴过python的程序呢
: http://www.mitbbs.com/article/Programming/31245807_0.html
: 这些东西,在真神面前是小儿科,不过编编web应该够用了

N*****m
发帖数: 42603
35
看着就蛋疼啊
node.js5分钟搞定的事

module,

【在 c********l 的大作中提到】
: 周末的时候在家里闲得无聊,于是想体验一把Python的web server。本来以为,无非是
: 手动地实现一个类似于WAMP的功能,应该花不了太长时间。但最后的事实是:各种问题
: 不断,插曲实在太多,花费了偶大半天的时间,于是把安装经验分享在网上,希望后来
: 人少走弯路。
: web.py在安装之前,需要有几个dependency: web server, Python, CGI/WSGI module,
: Database, Database driver/adaptor.
: 第一步:web server
: web.py的官方页面上说既可以用LightTPD也可以用Apache,考虑到Apache更普遍,平时
: 也经常用Apache,于是决定使用Apache。在官网上找到Apache 2.4 for windows x64下
: 载,安装,设端口为4567,最后start。发现:在服务器本地访问http://localhost:4567/时,一切OK。但是如果用远程机器上的浏览器访问http://my.server.com:4567/时,浏览器会长时间显示空白页面,最后超时报错。一开始怀疑可能是路由器没有打开NAT映射的问题,于是打开4567端口映射,再试,问题照旧。于是采取更激进的措施:索性在路由器上开启DMZ,同时DMZ指向安装了Apache的那台机器的IP,问题依然照旧。再打开Apache的logs,发现凡是本地访问的信息都会在上面一条不落地记录地一清二楚,但是远程的访问信息一点痕迹也没有。于是考虑到是不是Windows Server 2008自带的防火墙的问题。后来证实果然是: 如果没有在管理面板中明确指明允许端口或进程,那么Windows 2008的防火墙就会自动默认禁止相关的链接。解决方案有几种:添加"allow port 4567"的rule;添加"allow httpd.exe"的rule;甚至关闭windows Server自带的防火墙。本人选择了第二种方案,即"allow httpd.exe"的rule。最后终于出现Apache那“It works!”的界面

E*****m
发帖数: 25615
36
那就別謙虛說沒學過。
還是搞 Django 吧! community 大些。

【在 c********l 的大作中提到】
: python不就是那么一些么?
: 没有括号,缩进,for和if用冒号,没有类似java的for loop
: tuples, lambda,外加一些字符的class...神马的
: 偶之前还在版上贴过python的程序呢
: http://www.mitbbs.com/article/Programming/31245807_0.html
: 这些东西,在真神面前是小儿科,不过编编web应该够用了

p**o
发帖数: 3409
37
如果以前没有做过 web programming 和部署,而只是为了学 python,其实不用先折腾
apache 和 mod_wsgi。可以先用 web.py 或者 bottle 内置的那个用于调试的
webserver,把代码跑起来再说。
p**o
发帖数: 3409
38
与其道听途说、以讹传讹,为什么不自己读一读 bottle 源码?
总共就一个py文件,三千行代码,简单而精巧,是非常优秀的python学习资料。
是不是“浆糊作品”,你研读完后自有判断。
http://github.com/defnull/bottle/blob/master/bottle.py

【在 c********l 的大作中提到】
: 昨天本版不是还有人说bottle 其实是一个吊丝程序员的浆糊作品?
: 那就只能上Django 了?

d********g
发帖数: 10550
39
辟谣的来了,“浆糊作品”属于LZ自行添加,正宗的以讹传讹
原文:
http://mitbbs.com/article1/Programming/31244113_3_0.html

【在 p**o 的大作中提到】
: 与其道听途说、以讹传讹,为什么不自己读一读 bottle 源码?
: 总共就一个py文件,三千行代码,简单而精巧,是非常优秀的python学习资料。
: 是不是“浆糊作品”,你研读完后自有判断。
: http://github.com/defnull/bottle/blob/master/bottle.py

w****w
发帖数: 521
40
web.py自己就是个web server,自己用不需要另装Apache或lighttpd吧?我装在
pogoplug上用得蛮好。
1 (共1页)
进入Programming版参与讨论
相关主题
Question of apache module
哪里可以下到有一定规模的python open source code?
用python开发website
Python based web frameworks
python和工作一问
怎么学习python
坑: Python + "C++" plus SWAG as ONE big language
开始学python,要被它打败了
未来ruby能不能挤掉python
关于ruby和rails一点疑惑
相关话题的讨论汇总
话题: apache话题: python话题: wsgi话题: windows话题: module