使用web.py 搭建服务器
2014-12-29 15:45
288 查看
有很多python的web框架,web.py是一个轻量级Python web框架。她并不是使用很多的一个。
但并不妨碍她的简单实用。搭建一个嵌入式web服务器最好不过。
下面把笔者搭建过程做一个介绍:
1. 下载python 2.7.8 ,做交叉编译,需要依据自己的平台做修改:
Python-2.7.8-xcompile.patch 是一个patch,可以去我的下载资源下载,其他类似“ac_cv_file__dev_ptc”都是按
实际情况添加的,希望大家不要遇到太多编译或者配置问题^-^ 最终生成python 目标平台安装包
2. web.py 和 flup
下载0.37版的web.py,貌似可以直接在pc的python环境,搭建web.py,flup,setuptools,然后拷贝到目标机对应目录,
比如:/usr/lib/python2.7/
flup的支持:python setup.py
setuptools支持: python setuptools-0_6c11-py2.7.egg
笔者制作了包含三者的资源,以供参考。可以到下载资源区下载
3. lighttp 环境
下面是lighttpd.conf文件的关键部分,笔者将代码放在/home/www/目录
4. 可能遇到的问题:
》》child exited with status 127。。。
这个是由于window换行符引起,请用NOTEPAD++或类似工具,全部转换成unix格式
》》pcre support is missing, please install libpcre and the headers
pcre库的支持,交叉编译pcre即可
》》确保code.py具有可执行属性
5. session存在的问题
web.py的session使用过程中,笔者发现总是有问题,偶尔不响应请求,internal server error. 发现
session部分发生了异常。
由于web请求是多进程处理,两次web请求如果都对服务器端session文件读写,就需要同步。而web.py
并没有做这个处理。
修改 web.py session.py:
1) 添加一个线程锁
2) 读写同步
但并不妨碍她的简单实用。搭建一个嵌入式web服务器最好不过。
下面把笔者搭建过程做一个介绍:
1. 下载python 2.7.8 ,做交叉编译,需要依据自己的平台做修改:
./configure make python Parser/pgen mv python python_for_build;mv Parser/pgen Parser/pgen_for_build make distclean patch -p1 < Python-2.7.8-xcompile.patch ./configure --host=powerpc-linux --build=x86_64 --prefix=/home/myapp/Python-2.7.8/powerpc --disable-ipv6 ac_cv_file__dev_ptmx=no ac_cv_file__dev_ptc=no ac_cv_have_long_long_format=yes --enable-shared export RFS=/home/newsys/rootfs make --jobs=8 CFLAGS="-g0 -Os -s -I${RFS}/usr/include -fdata-sections -ffunction-sections" LDFLAGS='-L${RFS}/usr/lib -L${RFS}/lib' make install #sudo make install DESTDIR=${RFS} PATH="${PATH}"
Python-2.7.8-xcompile.patch 是一个patch,可以去我的下载资源下载,其他类似“ac_cv_file__dev_ptc”都是按
实际情况添加的,希望大家不要遇到太多编译或者配置问题^-^ 最终生成python 目标平台安装包
2. web.py 和 flup
下载0.37版的web.py,貌似可以直接在pc的python环境,搭建web.py,flup,setuptools,然后拷贝到目标机对应目录,
比如:/usr/lib/python2.7/
flup的支持:python setup.py
setuptools支持: python setuptools-0_6c11-py2.7.egg
笔者制作了包含三者的资源,以供参考。可以到下载资源区下载
3. lighttp 环境
下面是lighttpd.conf文件的关键部分,笔者将代码放在/home/www/目录
fastcgi.server = ( "/code.py" => (( "socket" => "/tmp/fastcgi.socket", "bin-path" => "/home/www/code.py", "max-procs" => 1, "bin-environment" => ( "REAL_SCRIPT_NAME" => "" ), "check-local" => "disable" )) ) url.rewrite-once = ( "^/(.*)$" => "/code.py/$1" )
4. 可能遇到的问题:
》》child exited with status 127。。。
这个是由于window换行符引起,请用NOTEPAD++或类似工具,全部转换成unix格式
》》pcre support is missing, please install libpcre and the headers
pcre库的支持,交叉编译pcre即可
》》确保code.py具有可执行属性
5. session存在的问题
web.py的session使用过程中,笔者发现总是有问题,偶尔不响应请求,internal server error. 发现
session部分发生了异常。
由于web请求是多进程处理,两次web请求如果都对服务器端session文件读写,就需要同步。而web.py
并没有做这个处理。
修改 web.py session.py:
1) 添加一个线程锁
2) 读写同步
相关文章推荐
- 使用Ubuntu搭建Web服务器(PHP)
- 如何使用局域网中一台机器搭建面向广域网的Web服务器: DMZ主机
- 轻松使用Nginx搭建web服务器
- 使用Nginx反向代理和proxy_cache缓存搭建CDN服务器加快Web访问速度
- 如何搭建web服务器 使用Nginx搭建反向代理服务器
- 使用Nginx搭建WEB服务器
- 轻松使用Nginx搭建web服务器
- 轻松使用Nginx搭建web服务器
- 使用Dockerfile搭建Apache Web服务器
- 小试---用web.py搭建web服务器的基本流程
- 搭建Apache+web.py+mod_wsgi python服务器
- 使用Golang 搭建http web服务器
- Android使用KSWEB搭建HTTP/WEB服务器环境
- MyEclipse6.5中搭建Web环境(使用Tomcat6.0服务器)
- 使用hunchentoot搭建Lisp web 服务器。
- 使用web.py搭建网站框架
- 使用Golang 搭建http web服务器
- 使用Dockerfile搭建Nginx Web服务器
- 使用gulp搭建web服务器
- 使用Nginx反向代理和proxy_cache缓存搭建CDN服务器加快Web访问速度