最近在网上淘了一个树莓派,什么是树莓派?这里是他的官方网站你可以去看看。 简单的说就是一块使用了ARM11的CPU,具有256MB或512MB内存的具有两个USB接口,一个RJ45接口,HDMI输出和A/V输出的小开发板。他的特别之处就是所有全部东西都集成在一块银行卡大小的PCB上。官方价格只要$35。

网上有很多关于如何使用树莓派的创意,比如这个链接有34个点子。


我这里讲的是做一个Web服务器。

安装树莓派系统

首先,我们要为树莓派安装一个操作系统。官方在这里提供了四种操作系统可供下载。不过你可以可以在各个树莓派的论坛上找到Android、或其他发行版的linux系统。 我使用的是官方推荐的Raspbian “wheezy”,他是基于debian的一个Linux系统。而且他安装软件也比较方便。

我自己的电脑上运行的就是debain系统。在linux系统下可以很简单的制作树莓派的SD卡。树莓派本身没有带flash,于是只有通过一张SD卡作为“硬盘”了。制作启动SD卡的命令如下:

dd if=[your-raspberrypi-image.img] of=/dev/[your-sd-card]

if后接的参数是你下载的树莓派的映像文件,of后面接你的SD卡的设备节点。

制作好之后,这张卡就可以启动树莓派了。将他插入树莓派的SD卡槽中,然后给他上电。我没有显示器,所以我用了一个USB转TTL的线连接到树莓派上,然后用串口调试助手登陆了树莓派。

配置系统

你可以使用默认的root用户,密码是raspberry登陆系统。然后运行 raspi-config 简单配置一下系统。我是用来做Web服务器用的,没有必要使用显示器,所以将GPU的显存设为0。

安装程序

接着安装所需要的程序,因为是使用基于debian的系统,所以可以使用有超级牛力的apt-get来安装程序。

#首先更新缓存并升级软件
apt-get update && apt-get upgrade
#然后安装所需的程序
apt-get lighttpd python-webpy python-flup mysql-server-5.5 mysql-client-5.5
# lighttpd是网页服务器 python-flup的是为了让python支持fastcgi mysql是数据库
# 你也可以使用其他的数据库,不过,我使用过postgresql之后,还是觉得mysql比较习惯

使用以上几个命令就能将所需的软件安装好了,接下来就是配置了。

配置lighttpd

lighttpd的配置文件在/etc/lighttpd目录下,主配置文件是lighttpd.conf,这个文件并不需要太多的改动,我的文件内容如下:

server.modules = (
"mod_access",
"mod_alias",
"mod_compress",
"mod_redirect",
"mod_rewrite",
"mod_status",
)
# 下面一行是规定网站的根目录在哪
server.document-root = "/var/www"
server.upload-dirs = ( "/var/cache/lighttpd/uploads" )
server.errorlog = "/var/log/lighttpd/error.log"
server.pid-file = "/var/run/lighttpd.pid"
server.username = "www-data"
server.groupname = "www-data"
#这里添加一个"index.py"
index-file.names = ( "index.py", "index.php", "index.html",
"index.htm", "default.htm",
" index.lighttpd.html" )
url.access-deny = ( "~", ".inc" )
#这里添加一个 ".py"
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )
include_shell "/usr/share/lighttpd/use-ipv6.pl"
dir-listing.encoding = "utf-8"
server.dir-listing = "enable"
compress.cache-dir = "/var/cache/lighttpd/compress/"
compress.filetype = ( "application/x-javascript", "text/css", "text/html", "text/plain" )
include_shell "/usr/share/lighttpd/create-mime.assign.pl"
include_shell "/usr/share/lighttpd/include-conf-enabled.pl"

然后是添加fastcgi支持。直接执行以下命令即可:

lighty-enable-mod fastcgi

然后修改一下 /etc/lighttpd/conf-enabled/10-fastcgi.conf

# /usr/share/doc/lighttpd-doc/fastcgi.txt.gz
# http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions#mod_fastcgi-fastcgi
server.modules += ( "mod_fastcgi" )
#添加如下两段
fastcgi.server = ("index.py" =>
((
"socket" => "/tmp/fastcgi.socket",
"bin-path" => "/var/www/index.py",
"max-procs" => 10,
"bin-environment" => (
"REAL_SCRIPT_NAME" => ""
),
"check-local" => "disable"
))
)
url.rewrite-once = (
"^/favicon$" => "/static/favicon.ico",
"^/static/(.*)$" => "/static/$1",
"^/(.*)$" => "/index.py/$1",
)

以上配置完成之后,你就可以直接写你的webpy程序,然后把他放在/var/www下就可以了,文件名保存为index.py如上配置文件所示。 (注意已经要把配置文件写正确了,否则,你看不到你的网站就不要怪我啦)

示例程序

下面我写一个简单的webpy程序作为示范:

#!/usr/bin/env python
# *-* coding: utf-8 *-*
import web
urls = (
"/(.*)", "index",
)
app = web.application(urls, globals())
class index:
def GET(self, name):
return "Hello " + name
if __name__ == "__main__":
app.run()

将以上文件保存为index.py放在/var/www目录下,然后重启lighttpd

service lighttpd restart

在浏览器中输入 http://localhost/andy

你将会看到浏览器中显示:

Hello andy

OK, 我的介绍就到这里了,其实以上的搭建webpy+lighttpd网站的过程也适用于其他的基于debian的系统,不一定只能在树莓派上使用。如果你有什么问题,欢迎在下面评论。

最近在网上淘了一个树莓派,什么是树莓派?这里是他的官方网站你可以去看看。 简单的说就是一块使用了ARM11的CPU,具有256MB或512MB内存的具有两个USB接口,一个RJ45接口,HDMI输出和A/V输出的小开发板。他的特别之处就是所有全部东西都集成在一块银行卡大小的PCB上。官方价格只要$35。

网上有很多关于如何使用树莓派的创意,比如这个链接有34个点子。


我这里讲的是做一个Web服务器。

安装树莓派系统

首先,我们要为树莓派安装一个操作系统。官方在这里提供了四种操作系统可供下载。不过你可以可以在各个树莓派的论坛上找到Android、或其他发行版的linux系统。 我使用的是官方推荐的Raspbian “wheezy”,他是基于debian的一个Linux系统。而且他安装软件也比较方便。

我自己的电脑上运行的就是debain系统。在linux系统下可以很简单的制作树莓派的SD卡。树莓派本身没有带flash,于是只有通过一张SD卡作为“硬盘”了。制作启动SD卡的命令如下:

dd if=[your-raspberrypi-image.img] of=/dev/[your-sd-card]

if后接的参数是你下载的树莓派的映像文件,of后面接你的SD卡的设备节点。

制作好之后,这张卡就可以启动树莓派了。将他插入树莓派的SD卡槽中,然后给他上电。我没有显示器,所以我用了一个USB转TTL的线连接到树莓派上,然后用串口调试助手登陆了树莓派。

配置系统

你可以使用默认的root用户,密码是raspberry登陆系统。然后运行 raspi-config 简单配置一下系统。我是用来做Web服务器用的,没有必要使用显示器,所以将GPU的显存设为0。

安装程序

接着安装所需要的程序,因为是使用基于debian的系统,所以可以使用有超级牛力的apt-get来安装程序。

#首先更新缓存并升级软件
apt-get update && apt-get upgrade
#然后安装所需的程序
apt-get lighttpd python-webpy python-flup mysql-server-5.5 mysql-client-5.5
# lighttpd是网页服务器 python-flup的是为了让python支持fastcgi mysql是数据库
# 你也可以使用其他的数据库,不过,我使用过postgresql之后,还是觉得mysql比较习惯

使用以上几个命令就能将所需的软件安装好了,接下来就是配置了。

配置lighttpd

lighttpd的配置文件在/etc/lighttpd目录下,主配置文件是lighttpd.conf,这个文件并不需要太多的改动,我的文件内容如下:

server.modules = (
"mod_access",
"mod_alias",
"mod_compress",
"mod_redirect",
"mod_rewrite",
"mod_status",
)
# 下面一行是规定网站的根目录在哪
server.document-root = "/var/www"
server.upload-dirs = ( "/var/cache/lighttpd/uploads" )
server.errorlog = "/var/log/lighttpd/error.log"
server.pid-file = "/var/run/lighttpd.pid"
server.username = "www-data"
server.groupname = "www-data"
#这里添加一个"index.py"
index-file.names = ( "index.py", "index.php", "index.html",
"index.htm", "default.htm",
" index.lighttpd.html" )
url.access-deny = ( "~", ".inc" )
#这里添加一个 ".py"
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )
include_shell "/usr/share/lighttpd/use-ipv6.pl"
dir-listing.encoding = "utf-8"
server.dir-listing = "enable"
compress.cache-dir = "/var/cache/lighttpd/compress/"
compress.filetype = ( "application/x-javascript", "text/css", "text/html", "text/plain" )
include_shell "/usr/share/lighttpd/create-mime.assign.pl"
include_shell "/usr/share/lighttpd/include-conf-enabled.pl"

然后是添加fastcgi支持。直接执行以下命令即可:

lighty-enable-mod fastcgi

然后修改一下 /etc/lighttpd/conf-enabled/10-fastcgi.conf

# /usr/share/doc/lighttpd-doc/fastcgi.txt.gz
# http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions#mod_fastcgi-fastcgi
server.modules += ( "mod_fastcgi" )
#添加如下两段
fastcgi.server = ("index.py" =>
((
"socket" => "/tmp/fastcgi.socket",
"bin-path" => "/var/www/index.py",
"max-procs" => 10,
"bin-environment" => (
"REAL_SCRIPT_NAME" => ""
),
"check-local" => "disable"
))
)
url.rewrite-once = (
"^/favicon$" => "/static/favicon.ico",
"^/static/(.*)$" => "/static/$1",
"^/(.*)$" => "/index.py/$1",
)

以上配置完成之后,你就可以直接写你的webpy程序,然后把他放在/var/www下就可以了,文件名保存为index.py如上配置文件所示。 (注意已经要把配置文件写正确了,否则,你看不到你的网站就不要怪我啦)

示例程序

下面我写一个简单的webpy程序作为示范:

#!/usr/bin/env python
# *-* coding: utf-8 *-*
import web
urls = (
"/(.*)", "index",
)
app = web.application(urls, globals())
class index:
def GET(self, name):
return "Hello " + name
if __name__ == "__main__":
app.run()

将以上文件保存为index.py放在/var/www目录下,然后重启lighttpd

service lighttpd restart

在浏览器中输入 http://localhost/andy

你将会看到浏览器中显示:

Hello andy

OK, 我的介绍就到这里了,其实以上的搭建webpy+lighttpd网站的过程也适用于其他的基于debian的系统,不一定只能在树莓派上使用。如果你有什么问题,欢迎在下面评论。

树莓派上搭建基于Python+web.py+fastcgi+lighttpd的网站的更多相关文章

  1. 【Python】【web.py】python web py入门-4-请求处理(上)

    python web py入门-4-请求处理(上) 2017年09月05日 23:07:24 Anthony_tester 阅读数:2907 标签: webpy入门请求处理 更多 个人分类: Pyth ...

  2. 搭建基于python +opencv+Beautifulsoup+Neurolab机器学习平台

    搭建基于python +opencv+Beautifulsoup+Neurolab机器学习平台 By 子敬叔叔 最近在学习麦好的<机器学习实践指南案例应用解析第二版>,在安装学习环境的时候 ...

  3. Mac 上搭建基于 Hexo + GitHub 个人博客

    环境配置 本人电脑系统:macOS Node.js 生成静态页面.安装Node.js Git 用于将本地 Hexo 内容提交到 Github.Xcode自带Git(前提:macOS已经安装了Xcode ...

  4. 通过nginx搭建基于python的web环境

    前言: 在搭建开始前,我们先来梳理下web服务工作流程,先看下图: 1.用户(PC)向web服务器发起http请求 2.web服务器判断用户请求文件是否为静态文件,是则直接读取静态文件并返回给用户,不 ...

  5. 在IIS上部署基于django WEB框架的python网站应用

    django是一款基于python语言的WEB开源框架,本文给出了如何将基于django写的python网站部署到window的IIS上. 笔者的运行环境: Window xp sp3 IIS 5.1 ...

  6. Windows下Nginx+Web.py+FastCGI服务搭建

    在搭建之前,有必要了解下什么是fastcgi,但鉴于我自己也不大了解,这里就不搬门弄斧了,请参考各种百科和官网资料. 1.资源下载 python下载地址:戳这里webpy下载地址:戳这里flup下载地 ...

  7. python web.py安装使用

    官方首页:http://webpy.org/) 它的源代码非常整洁精干,学习它一方面可以让我们快速了解python语法(遇到看不懂的语法就去google),另一方面可以学习到python高级特性的使用 ...

  8. [转]在树莓派上搭建LAMP服务

    之前介绍过树莓派上LNMP环境的搭建方法,本文将详细介绍如何在树莓派上配置LAMP服务. 为LAMP,是最流行的服务器配置之一,LAMP的含义是: Linux - 操作系统 Apache - 网络服务 ...

  9. 【Python】【Web.py】python web py入门-5-请求处理(下)

    前面一篇,我们演示了如何获取GET和POST请求的参数信息,这篇我们介绍如何获取请求的头部信息,这个方法我们在前面一篇文章已经给出了.直接来看一个例子,首先,我们在hello.py文件新增一个方法,用 ...

随机推荐

  1. 基于smack的xmpp packet 重写

    基于Smack 实现Notification数据包.smack的类中有一个org.jivesoftware.smack.packet.IQ只需对他重写即可,在做的时候其实可以简单一点的,如果你使用ti ...

  2. mongodb地理位置索引

    初始化集合(经度在前,纬度在后) ? 1 2 3 mongos> db.checkins.insert({ "_id" : "101", "lo ...

  3. InnoTop

    是一个系统活动报告,类似于Linux性能工具,它与Linux的top命令相仿,并参考mytop工具而设计. 它专门用后监控InnoDB性能和MySQL服务器.主要用于监控事务,死锁,外键,查询活动,复 ...

  4. careercup-递归和动态规划 9.6

    9.6 实现一种算法,打印n对括号的全部有效组合(即左右括号正确配对). 类似leetcode:Generate Parentheses 解法: 从头开始构造字符串,从而避免出现重复字符串.在这个解法 ...

  5. ArrayList的实现原理--转

    1. ArrayList概述: ArrayList是List接口的可变数组的实现.实现了所有可选列表操作,并允许包括 null 在内的所有元素.除了实现 List 接口外,此类还提供一些方法来操作内部 ...

  6. C#泛型对类型参数的推断

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  7. 使用ExpandableListView实现一个时光轴

    在许多App上都能看到时光轴的效果,比如携程等等,那么我们今天就利用ExpandableListView来实现一个时光轴效果,先来看看效果图: 效果还是挺简单的,这里我们主要是采用Expandable ...

  8. start mysqld on Mac server

    #!/bin/sh # Source the common setup functions for startup scripts test -r /etc/rc.common || exit 1 . ...

  9. E: Sub-process /usr/bin/dpkg returned an error code (1)

    E: Sub-process /usr/bin/dpkg returned an error code (1) 错误描述 dpkg: error processing archive /var/cac ...

  10. Objective-c中的设计模式

    如果你会写算法,又理解设计模式,你就牛逼了.后面一段时间我会尽可能易懂的描述来讲解iOS中的设计模式,并且每个设计模式都会有对应的demo:https://github.com/goodyboy6/D ...