7、MACOS环境搭建——lighttpd服务


Lighttpd

Lighttpd 是一个德国人领导的开源Web服务器软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的web server环境。具有非常低的内存开销、cpu占用率低、效能好以及丰富的模块等特点。

Lighttpd是众多OpenSource轻量级的web server中较为优秀的一个。支持FastCGI,CGI,Auth,输出压缩(output compress),URL重写,Alias等重要功能;而Apache之所以流行,很大程度也是因为功能丰富,在lighttpd上很多功能都有相应的实现了,这点对于apache的用户是非常重要的,因为迁移到lighttpd就必须面对这些问题。

下载链接如下:

http://www.lighttpd.net/download/

编译安装

 $ LIGHTTPD_STATIC=yes ./configure -C --enable-static=yes

  $ make

  $ sudo make install

mkdir -p /var/log/lighttpd


默认配置

默认配置,将文件夹config,文件路径:doc/config复制到/usr/local/lighttpd/下

启动LIGHTTPD

语法检查

./lighttpd  -t  -f  /usr/local/lighttpd/config/lighttpd.conf 

Syntax OK

./lighttpd  -f /usr/local/lighttpd/config/lighttpd.conf 

启动。

关闭

ps -ef | grep lighttp

然后杀掉

sudo kill -9 [pid]

错误

the selected event-handler in unknown or not supported: linux-sysepoll 

答:查看,显示编译时间特性

./sbin/lighttpd -V

修改lighttpd.conf 文件。如下181行,事件处理,注释掉。

server.event-handler = "linux-sysepoll"


(server.c.1017) can't find groupname lighttpd 

答:将lighttpd.conf中104与105行注释掉

#server.username  = "lighttpd"

#server.groupname = "lighttpd"


将lighttpd.conf中server.use-ipv6 = “enable"注释掉。

lighttpd.conf配置

/etc/lighttpd/lighttpd.conf为 Lighttpd 服务器的配置文件

## 网站根目录 映射在机器上的物理路径

server.document-root        = "/home/lighttpd/html/"


## 如果网站目录中出现以下文件名,不用指定文件名便可直接访问

index-file.names            = ( "index.php", "index.html",

                                "index.htm", "default.htm" )


## Lighttpd 进程的归属用户

server.username             = "nobody"


## Lighttpd 进程的归属群组

server.groupname            = "nobody"


## 绑定到端口 默认为 80

#server.port                = 81


## 绑定到地址 默认为 所有

#server.bind                = "127.0.0.1"


## 访问日志 路径

accesslog.filename          = "/var/log/lighttpd/access.log"


## 错误日志 路径

server.errorlog             = "/var/log/lighttpd/error.log"


## 禁止访问以下文件

url.access-deny             = ( "~", ".inc" )  


## 与目录列表相关的设置

#dir-listing.activate       = "enable"  

#dir-listing.encoding       = "utf8"

#dir-listing.show-readme       = "enable"

配置文件中的server.modules字段决定Lighttpd使用哪些扩展模块:

server.modules = ("mod_access","mod_fastcgi","mod_accesslog" )

Lighttpd 通过 mod_fastcgi 模块支持 PHP

mod_accesslog 模块为访问纪录

其实在 /etc/lighttpd/lighttpd.conf 文件中,这部分内容写在多行,方便用 # 作注释,禁用不需要的模块

server.modules              = (

## 基础模块

        "mod_access",

## 访问纪录

        "mod_accesslog" )   

## fastcgi 支持

        "mod_fastcgi",

## cgi 支持

#                               "mod_cgi",

## 路径绑定

#                               "mod_alias",

##  代理 (转发页面)

#                               "mod_proxy",

## 虚拟主机

#                               "mod_evhost",

## 输出压缩

#                               "mod_compress",

## 网址重写

#                               "mod_rewrite",

## 用户认证

#                               "mod_auth",

#                               "mod_redirect",

#                               "mod_cml",

#                               "mod_trigger_b4_dl",

#                               "mod_status",

#                               "mod_setenv",

#                               "mod_simple_vhost",

#                               "mod_userdir",

#                               "mod_ssi",

#                               "mod_usertrack",

#                               "mod_expire",

#                               "mod_secdownload",

#                               "mod_rrdtool",

fastcgi 配置

在配置文件的server.modules字段中启用mod_fastcgi模块,然后检查以下内容:

### fastcgi 脚本扩展名

static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )      


### fastcgi 服务器设置      

fastcgi.server             = ( ".php" =>

                               ( "localhost" =>

                                 (

# TCP/IP 接口 (“套接字”)

                                   "socket" => "/tmp/php-fastcgi.socket",

# PHP cgi 模式的可执行文件(PHP 有 cli 和 cgi 两种模式)

                                   "bin-path" => "/usr/bin/php-cgi"

                                 )

                               )

                            )

上面例子的第二部分,使用 Lighttpd 转发规则。大意为: .php文件按以下方式处理 => 从localhost(本地),发送到/tmp/php-fastcgi.socket接口,使用/usr/bin/php-cgi处理。写成一行比较直观:

fastcgi.server  = ( ".php" => ( "localhost" => ( "socket" => "/tmp/php-fastcgi.socket", "bin-path" => "/usr/bin/php-cgi" )))

如果想要 fastcgi 和 PHP 协同工作,还需要对 PHP 作一些设置,见“PHP&MySQL”一节

proxy

该模块可以将文件转发到其它服务器进行处理,例如将.jsp文件转发到Tomcat服务器

### 首先启用 mod_proxy 模块

# += 表示在原来设置上增加

servers.modules +=( "mod_proxy")


### 设置 proxy 服务器转发规则    

proxy.server               = ( ".jsp" =>

                               ( "localhost" =>

                                 (

# 将 .jsp 文件发送到 地址“127.0.0.1”的“8080”端口(也就是本机的 Tomcat 服务器)

                                   "host" => "127.0.0.1",

                                   "port" => 8080

                                 )

                               )

                             )

CGI

Lighttpd 可以支持 cgi

### 启用 mod_cgi 模块

server.modules              += ("mod_cgi")


### 设置 cgi 解释器

cgi.assign                 = ( ".pl"  => "/usr/bin/perl",

                               ".cgi" => "/usr/bin/perl",

                               ".py"  => "/usr/bin/python" )

路径绑定

将一个路径,映射到网站目录中

## 启用 mod_alias 模块

servers.modules +=( "mod_alias")    


##  将 /home/lighttpd/html/man 映射到 http://host/docs

alias.url += ( "/docs" => "/home/lighttpd/html/man" )

虚拟主机

Lighttpd 可以建立多个虚拟主机,绑定在不同的网络接口

### 启用 mod_evhost 模块

servers.modules +=( "mod_evhost")


### 虚拟主机绑定的网络接口

$HTTP["host"] == "192.168.1.2" 

{

### 虚拟主机可以使用独立的选项

dir-listing.activate       = "enable"

dir-listing.encoding       = "utf8"

dir-listing.show-readme       = "enable"

### 虚拟主机根目录

server.document-root = "/home/user/html"

### 虚拟主机路径绑定

alias.url = ( "/download/" => "/home/user/downloads/" )

alias.url += ( "/pictures/" => "/home/user/pictures/" )

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值