返回
基础
分类

必赢手机登录网址Alias等重要功能,说明如何安装、配置lighttpd

日期: 2020-01-02 08:16 浏览次数 : 200

lighttpd( banner之类的WEB服务器是最恰当不过了。

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

Lighttpd安装及secdownload,fastcgi,proxy配置

本文从应用的角度,说明如何安装、配置lighttpd。

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

1,下载安装lighttpd-1.4.34
lighttpd官网下载最新稳定版本
[[email protected] software]#tar -zxvf lighttpd-1.4.34.tar.gz
[[email protected] software]#cd lighttpd-1.4.34
[[email protected] lighttpd-1.4.34]#./configure --prefix=/usr/local/lighttpd  #安装默认模块
[[email protected] lighttpd-1.4.34]#make && make install

(1) 安装

必赢手机登录网址 1

2,添加lighttp运行用户
[[email protected] lighttpd-1.4.34]#useradd  -M -s /sbin/nologin  lighttpd

可从 make && make install就搞定了。但是如果你想定制一些功能,就得好好看看解压后README, INSTALL以及./configure –help的输出结果了。这里仅仅说一下如何从源码安装,其他安装方式可参考

Lighttpd默认页面

3,拷贝配置文件模板
[[email protected] lighttpd-1.4.34]# cd doc/
[[email protected] doc]# ls
config  initscripts  lighttpd.8  Makefile  Makefile.am  Makefile.in  newstyle.css  oldstyle.css  outdated  scripts  systemd
[[email protected] doc]# cp -r config /usr/local/lighttpd/
然后删除正式安装目录下的Makefile文件
[[email protected] config]# rm -rf Makefile*

$ gzip -cd lighttpd-1.4.9.tar.gz | tar xf -...$ cd lighttpd-1.4.9$ ./configure --help`configure' configures lighttpd 1.4.9 to adapt to many kinds of systems.Usage: ./configure [OPTION]... [VAR=VALUE]...To assign environment variables (e.g., CC, CFLAGS...), specify them asVAR=VALUE.  See below for descriptions of some of the useful variables.Defaults for the options are specified in brackets.Configuration:...Installation directories:  --prefix=PREFIX         install architecture-independent files in PREFIX                          [/usr/local]  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX                          [PREFIX]By default, `make install' will install all the files in`/usr/local/bin', `/usr/local/lib' etc.  You can specifyan installation prefix other than `/usr/local' using `--prefix',for instance `--prefix=$HOME'.For better control, use the options below.Fine tuning of the installation directories:...Program names:...System types:...Optional Features:  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]  --enable-maintainer-mode  enable make rules and dependencies not useful                          (and sometimes confusing) to the casual installer  --disable-dependency-tracking  speeds up one-time build  --enable-dependency-tracking   do not reject slow dependency extractors  --enable-static[=PKGS]                          build static libraries [default=no]  --enable-shared[=PKGS]                          build shared libraries [default=yes]  --enable-fast-install[=PKGS]                          optimize for fast installation [default=yes]  --disable-libtool-lock  avoid locking (might break parallel builds)  --enable-lfs            Turn on Large File System (default)  --disable-ipv6          disable IPv6 supportOptional Packages:  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]  --with-pic              try to use only PIC/non-PIC objects [default=use                          both]  --with-tags[=TAGS]                          include additional configurations [automatic]  --with-mysql[=PATH]                          Include MySQL support. PATH is the path to                          'mysql_config'  --with-ldap             enable LDAP support  --with-attr             enable extended attribute support  --with-valgrind         enable internal support for valgrind  --with-openssl[=DIR]                          Include openssl support (default no)  --with-openssl-includes=DIR                          OpenSSL includes  --with-openssl-libs=DIR OpenSSL libraries  --with-kerberos5        use Kerberos5 support with OpenSSL  --with-pcre             Enable pcre support (default yes)  --with-bzip2            Enable bzip2 support for mod_compress  --with-fam              fam/gamin for reducing number of stat() calls  --with-webdav-props     properties in mod_webdav  --with-gdbm             gdbm storage for mod_trigger_b4_dl  --with-memcache         memcached storage for mod_trigger_b4_dl  --with-lua              lua engine for mod_cmlSome influential environment variables:...

Lighttpd安装方法

4,拷贝服务启动脚本文件并添加自启动
[[email protected] initscripts]# pwd
/root/software/lighttpd-1.4.34/doc/initscripts
[[email protected] initscripts]# cp rc.lighttpd.RedHat  /etc/init.d/lighttpd
[[email protected] initscripts]# chkconfig lighttpd on
[[email protected] initscripts]# chmod u+x /etc/init.d/lighttpd

如上所述,可通过–prefix指定安装路径,默认安装在/usr/local下。可以指定启用哪些特征(插件),禁用哪些特征(插件)。假定我们要把lighttpd安装到/usr/local/lighttpd-1.4.9下面。

  1. 下载最新版本
  2. 解压、安装、配置
    shell> tar zxvf lighttpd-1.4.12.tar.gz
    shell> cd lighttpd-1.4.12
    shell> ./configure –prefix=/usr/local/lighttpd
    shell> ./make
    shell> ./make install
    shell> cp doc/rc.lighttpd.RedHat /etc/rc.d/init.d/lighttpd
    shell> cp doc/sysconfig.lighttpd /etc/sysconfig/lighttpd
    shell> mkdir /etc/lighttpd
    shell> cp doc/lighttpd.conf /etc/lighttpd/lighttpd.conf
    shell> chkconfig lighttpd on
    接下来打开/etc/rc.d/init.d/lighttpd修改lighttpd的值如下
    lighttpd=”/usr/local/lighttpd/sbin/lighttpd”
    打开/etc/lighttpd/lighttpd.conf修改服务的端口,以及文档根目录的路径后启动lighttpd服务
    shell> service lighttpd start
    更多关于lighttpd的配置请看lighttpd的文档
    附注在lighttpd中可以通过下面的配置来实现每天一个访问日志文件:
    accesslog.filename = “| /usr/local/lighttpd/bin/rotatelogs /usr/local/lighttpd/logs/access_%Y%m%d.log 86400″
    其中rotatelogs直接从apache的bin目录拷贝过来即可。
    配置日志记录格式:
    accesslog.format = "%h %l %u %t "%r" 200 %b "%{Referer}i" "%{User-Agent}i""

5,修改启动脚本文件中的配置路径 ,如下
if [ -z "$LIGHTTPD_CONF_PATH" ]; then
      LIGHTTPD_CONF_PATH="/usr/local/lighttpd/config/lighttpd.conf"  #定义配置文件目录
fi
lighttpd="/usr/local/lighttpd/sbin/lighttpd" #定义主程序命令位置

$ ./configure --prefix=/usr/local/lighttpd-1.4.9$ make$ make install$ cp  doc/lighttpd.conf /usr/local/lighttpd-1.4.9/  # 拷贝配置文件$ cd /usr/local/lighttpd-1.4.9$ vi lighttpd.conf # 修改配置文件

相关阅读

6,修改主配置lighttpd.conf文件
var.home_dir    = "/usr/local/lighttpd"  #定义程序主目录
var.server_root = "/home/html" #定义web应用主目录
var.log_root    = home_dir+"/var/log" #必赢手机登录网址 ,定义日志目录
var.state_dir  = home_dir+"/var/run" #定义运行状态文件目录
var.conf_dir    = home_dir+"/etc" #定义配置文件目录
var.vhosts_dir  = server_root + "/vhosts" #定义虚拟主机配置目录
var.cache_dir  = home_dir+"/var/cache" #定义缓存目录
var.socket_dir  = home_dir + "/sockets" #定义socket文件目录
include "modules.conf" #加载系统模块配置文件
server.port = 8080 #系统监听端口
server.use-ipv6 = "disable"
server.username  = "lighttpd" #运行用户身份
server.groupname = "lighttpd" #运行组身份
server.document-root = server_root #定义web应用目录
server.pid-file = state_dir + "/lighttpd.pid"
server.errorlog = log_root + "/error.log"
include "conf.d/access_log.conf"
include "conf.d/debug.conf"
server.event-handler = "linux-sysepoll"
server.network-backend = "linux-sendfile"
server.max-fds = 2048
server.stat-cache-engine = "simple"
server.max-connections = 1024
index-file.names += (
 "index.xhtml", "index.html", "index.htm", "default.htm", "index.php"
)
url.access-deny            = ( "~", ".inc" )
$HTTP["url"] =~ ".pdf$" {
 server.range-requests = "disable"
}
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi", ".scgi" )
include "conf.d/mime.conf"
include "conf.d/dirlisting.conf"
server.follow-symlink = "enable"
server.upload-dirs = ( "/tmp" )

配置文件很直观明了,一般只要把server.document-root、server.errorlog、accesslog.filename改成你的实际目录和文件名字就可以了。

CentOS 5.6 下搭建Lighttpd http://www.linuxidc.com/Linux/2012-08/68557.htm

7,启动相应模块及其主文件配置
模块配置文件
[[email protected] etc]# cat modules.conf |grep -v ^# | grep -v ^$
server.modules = (
 "mod_access",
 "mod_rewrite", #启用重定向
)
include "conf.d/proxy.conf" #启用代理模块
include "conf.d/secdownload.conf" #启动secdownload防盗链模块
include "conf.d/fastcgi.conf" #启用fastcgi模块

$ sbin/lighttpd -f lighttpd.conf # 启动lighttpd服务$ ps aux | grep lighttpdwww 15403  0.0  0.9  2860 1148 ? S 00:15 0:00 sbin/lighttpd -f

Cacti监控Lighttpd http://www.linuxidc.com/Linux/2012-01/51863.htm

代理配置主文件
[[email protected] etc]# cat conf.d/proxy.conf |grep -v ^# | grep -v ^$
server.modules += ( "mod_proxy" )

这就完成了从安装到启动的整个过程,很简单吧。从最后一行的输出可以看出,lighttpd是单进程服务的,这和apache不一样(也许是它的稳定性不如apache的一个原因)。

Ubuntu 手动编译安装Lighttpd配置运行PHP http://www.linuxidc.com/Linux/2011-12/48808.htm

proxy.server = ( ".php" =>
                ( "nginx" =>
                  (
                    "host" => "127.0.0.1",
                    "port" => 80
                  )
                ),
".mp3"=>
                ( "nginx" =>
                  (
                    "host" => "127.0.0.1",
                    "port" => 80
                  )
                )
              )

(2) 整合php和fastcgi

移植Lighttpd Web服务器到ARM Linux系统 http://www.linuxidc.com/Linux/2011-09/43619.htm

secdownload防盗链模块配置主文件
[[email protected] etc]# cat conf.d/secdownload.conf |grep -v ^# | grep -v ^$
server.modules += ( "mod_secdownload" )
secdownload.document-root = server_root + "/music"
secdownload.secret = "Tgn.com"
secdownload.timeout = 60
secdownload.uri-prefix = "/mp3/"

以php-4.3.11为例,编译PHP的时候,不能指定 –with-apxs选项,编译命令行大致如下:

Ubuntu下搭建Lighttpd+PHP+MySQL环境 http://www.linuxidc.com/Linux/2011-07/38675.htm

PHP fastcgi配置主文件
[[email protected] etc]# cat conf.d/fastcgi.conf |grep -v ^# | grep -v ^$
server.modules += ( "mod_fastcgi" )
fastcgi.server = ( ".php" =>
                  ( "php-tcp" =>
                    (
                      "host" => "127.0.0.1",
                      "port" => 9000,
                      "check-local" => "disable",
                      "broken-scriptfilename" => "enable",
                    )
                  ),
              )

$ ./configure ... --enable-force-cgi-redirect --enable-fastcgi$ make$ sapi/cgi/php -vPHP 4.3.11 (cgi-fcgi) (built: Jan 30 2006 00:12:34)Copyright (c) 1997-2004 The PHP GroupZend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies

在CentOS 5.6 上安装 Lighttpd + PHP5 + MySQL http://www.linuxidc.com/Linux/2011-07/38341.htm

8,根据配置建立日志及其它目录
[[email protected] lighttpd]# mkdir -p var/log
[[email protected] lighttpd]# mkdir -p var/run
[[email protected] lighttpd]# mkdir -p var/cache
[[email protected] lighttpd]# mkdir -p socket

make完了后,会在sapi/cli目录生成命令行下的php程序,sapi/cgi下生成fastcgi下的php程序。如果执行sapi/cgi下的php显示版本号,你会发现有 cgi-fcgi的说明,这就表明你成功了。

Lighttpd 对视频文件压缩文件做防盗链 http://www.linuxidc.com/Linux/2013-10/92039.htm

9,启动测试
[[email protected] lighttpd]# service lighttpd restart

$ mkdir /usr/local/lighttpd-1.4.9/fcgi$ cp sapi/cgi/php /usr/local/lighttpd-1.4.9/fcgi/$ vi /usr/local/lighttpd-1.4.9/lighttpd.conf

必赢手机登录网址 2

Lighttpd 的详细介绍:请点这里
Lighttpd 的下载地址:请点这里

我们建立一个子目录fcgi用来保存所有的fast-cgi程序,然后把php拷贝到该目录下。编辑lighttpd.conf,如下所示:

CentOS 5.6 下搭建Lighttpd

...server.modules = ( ... "mod_fastcgi", ...)...fastcgi.server = (".php" => ( "127.0.0.1" =>  (   "socket" => "/tmp/fcgi_php.sock",   "bin-path" => "/usr/local/lighttpd-1.4.9/fcgi/php"  ) ) )

Cacti监控Lighttpd

重新启动lighttpd就可以了。Lighttpd和fastcgi通信有两种方式:通过Unix socket通信,如以上PHP的启动;通过TCP/IP socket通信。Lighttpd支持基于fastcgi的负载均衡,不过我没尝试过。

Ubuntu 手动编译安装Lighttpd配置运行PHP

关于fastcgi的协议规范,请参考

移植Lighttpd Web服务器到ARM Linux系统

fastcgi.server = ( "/fastcgi/adsim" => ( "127.0.0.1" =>  (   "host" => "127.0.0.1",   "port" => 4000,   "bin-path" => "/usr/local/lighttpd-1.4.9/fcgi/adsim",   "check-local" => "disable"  ))

Ubuntu下搭建Lighttpd+PHP+MySQL环境

check-local必须设置为disable,否则因为找不到/fastcgi/adsim会导致请求失败。

在CentOS 5.6 上安装 Lighttpd + PHP5 + MySQL

(3) 制作lighttpd启动脚本

Lighttpd 对视频文件压缩文件做防盗链

每次启动lighttpd时我们要指定配置文件的位置,停止lighttpd时要先找到进程号,然后用kill发送停止信号,有点太麻烦了。好在lighttpd自带了一个脚本程序能辅助完成这些操作,只要稍微改改就能用了,那就是源码目录doc/rc.lighttpd和doc/rc.lighttpd.redhat,后者专用于RedHat Linux。主要的改动之处在于:

1,下载安装lighttpd-1.4.34 lighttpd官网下载最新稳定版本 [[email protected] software]#tar -zxvf lighttpd-1.4.34.tar.gz [ro...

...if [ -z "$LIGHTTPD_CONF_PATH" ]; then        LIGHTTPD_CONF_PATH="/usr/local/lighttpd-1.4.9/lighttpd.conf"fi...lighttpd="/usr/local/lighttpd-1.4.9/usr/sbin/lighttpd"...

用这个脚本管理lighttpd是不是方便多了。

(4) Lighttpd和OpenSSL

Lighttpd默认不编译ssl模块,所以必须在编译的时候明确指定 –with-openssl,然后再生成自签署的服务器证书或者从CA那里获取。生成自签署证书的方法如下:

$ openssl req -new -x509 -keyout server.pem  -out server.pem -days 365 -nodes

Lighttpd要求证书和私匙保存在同一个文件里,如果是分开的,则需要合并:

$ cat host.key host.crt > host.pem

配置lighttpd.conf,大致样子如下:

ssl.engine = "enable"ssl.pemfile = "server.pem"

你可以针对某个虚拟主机做这样的设置,但是由于SSL工作在TCP层,所以不能设置基于名称的虚拟主机,只能设置基于端口的。 以下是一个配置样例:

$SERVER["socket"] == "192.168.146.128:443" {       ssl.engine = "enable"       ssl.pemfile = "/usr/local/lighttpd/certs/server.pem"       server.document-root = "/home/www/wfs/www"}

(5) 配置目录列表

修改 lighttpd.conf,大致如下所示:

server.module = { ... "mod_dirlisting", ...}dir-listing.activate = "enable"

(6) 配置CGI

修改lighttpd.conf,首先需要启动mod_cgi,然后在static-file.exclude-extensions中指定cgi文件的扩展名,最后通过cgi.assign配置指令进行关联。

对于带扩展名且需要特定解析程序执行的CGI,可以指定解析程序的路径,比如:

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

对于带扩展名切不需要特定解析程序就能执行的CGI,可指定解析程序为空,比如:

cgi.assign = (".cgi" => "")

对于不带扩展名的CGI程序,只能通过固定路径存取了,比如:

cgi.assgin = ( "/cgi-bin/mycgi" => "/usr/local/cgi/mycgi )

(7) 配置虚拟主机

配置基于端口的虚拟主机上文有所描述,基于名称的虚拟主机也很简单。修改lighttpd.conf,启动模块mod_simple_vhost,然后指定你的虚拟主机信息,比如:

$HTTP["host"] == "news.example.org" {  server.document-root = "/var/www/servers/news2.example.org/pages/"}

Lighttpd注重于速度,而Apache注重于稳定性和功能,怎么选择还得看具体的应用。

  1. 解压、安装、配置

shell> tar zxvf lighttpd-1.5.0-r1691.tar.gz
shell> cd lighttpd-1.5.0
shell> ./configure –prefix=/usr/local/lighttpd
shell> ./make
shell> ./make install
shell> cp doc/rc.lighttpd.redhat /etc/rc.d/init.d/lighttpd
shell> chmod 777 /etc/rc.d/init.d/lighttpd
shell> cp doc/sysconfig.lighttpd /etc/sysconfig/lighttpd
shell> mkdir /etc/lighttpd
shell> cp doc/lighttpd.conf /etc/lighttpd/lighttpd.conf
shell> chkconfig lighttpd on

接下来打开/etc/rc.d/init.d/lighttpd修改lighttpd的值如下

lighttpd=”/usr/local/lighttpd/sbin/lighttpd”

打开/etc/lighttpd/lighttpd.conf修改服务的端口(默认是80),以及文档根目录的路径(默认是/www/pages)后启动lighttpd服务

shell> service lighttpd start

更多关于lighttpd的配置请看lighttpd的文档
附注

在lighttpd中可以通过下面的配置来实现每天一个访问日志文件

accesslog.filename = “| /usr/local/lighttpd/bin/rotatelogs /usr/local/lighttpd/logs/access_%Y%m%d.log 86400″

其中rotatelogs直接从apache的bin目录拷贝过来即可。

...