`
xiangxingchina
  • 浏览: 523393 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Lighttpd 的安装配置

阅读更多

lighttpd(http://lighttpd.net/)和apache一样是开源的,与apache相比,虽然功能不及apache完善, 稳定性也不如apache,但是,不管是服务静态页面,还是服务动态内容(CGI,PHP),它都比apache快,用于ad banner之类的WEB服务器是最恰当不过了。

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

(1) 安装

可从http://lighttpd.net/download/下载最新的源码(.tar.gz)或者rpm包。如果下载的是.tar.gz文 件,则和GNU的其他软件一样,先./configure一下,然后 make && make install就搞定了。但是如果你想定制一些功能,就得好好看看解压后README, INSTALL以及./configure --help的输出结果了。这里仅仅说一下如何从源码安装,其他安装方式可参考 http://trac.lighttpd.net/trac/wiki/TutorialInstallation。

$ 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 as
VAR=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 specify
an 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 support

Optional 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_cml

Some influential environment variables:
...

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

$ ./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 # 修改配置文件

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

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

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

(2) 整合php和fastcgi

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

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

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

$ 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

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

...
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"
  )
 )
 )

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

关于fastcgi的协议规范,请参考http://www.fastcgi.com/,以下是我自己写的一个fastcgi的配置样例:

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"
  )
)

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

(3) 制作lighttpd启动脚本

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

...
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注重于稳定性和功能,怎么选择还得看具体的应用。

 

2. 解压、安装、配置

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目录拷贝过来即可。

分享到:
评论

相关推荐

    lighttpd 安装配置

    #### 四、Lighttpd配置 **创建配置文件** 在Lighttpd安装目录下的`doc`目录中,有一个示例配置文件`lighttpd.conf`,可以将其复制到`conf`目录,并进行编辑: ``` mkdir conf cp /path/to/lighttpd-1.4.8/doc/...

    lighttpd配置和启动脚本

    以上就是lighttpd配置文件和启动脚本的基本介绍。在实际部署和运维过程中,需要根据具体需求对配置文件进行调整,并确保启动和停止脚本的可靠性,以确保Web服务器的稳定运行。理解并熟练掌握这些内容,对于管理和...

    lighttpd安装全集

    本文将详细介绍如何在CentOS 6.x系统上安装并配置lighttpd。 1. **支持平台与编译环境** Lighttpd适用于多种操作系统平台,包括但不限于Linux(如FC3、SuSE、Debian、Gentoo、PLD-Linux和OpenWRT)、*BSD(FreeBSD...

    Linux Lighttpd 配置安装 运行 测试

    在Linux上安装Lighttpd,里面有遇到的一些问题的解决方法,整个安装流程,还有参考网站

    varnish+lighttpd配置

    **三、Varnish+Lighttpd配置步骤** 1. **安装Varnish** 在Ubuntu系统中,可以使用以下命令安装Varnish: ``` sudo apt-get update sudo apt-get install varnish ``` 2. **配置Varnish** 配置Varnish的主要...

    简明Windows,lighttpd,fastcgi,php5 Web服务器配置

    在Windows上配置lighttpd与FastCGI,需要在lighttpd配置文件中启用fastcgi模块,并定义fastcgi.server部分,指定PHP处理器的位置和连接参数。 PHP5是广泛使用的服务器端脚本语言,尤其适合Web开发。在lighttpd和...

    lighttpd简单配置

    在进行lighttpd的安装与配置之前,我们需要确保一些必要的库已经安装完成。根据提供的部分文件内容来看,主要涉及到了以下几步: 1. **安装libtool**:`yum -y install libtool` - `libtool`是一个帮助开发者创建...

    ubuntu lighttpd实现websocket

    3、首先配置lighttpd.conf 修改为自己的工作路径 var.server_root = "/home/caoft/lighttpd/lighttpd_websocket/http_server" var.state_dir = "/home/caoft/lighttpd/lighttpd_websocket/http_server" var.home_dir...

    用于ROR应用的lighttpd配置模板

    "用于ROR应用的lighttpd配置模板"提供了一个预设的配置,帮助开发者快速配置lighttpd以支持Rails环境。 Lighttpd以其低内存占用和高并发能力而受到欢迎,它支持FastCGI,这是与Rails应用进行通信的常见接口。...

    在 Ubuntu 15.04/CentOS 7 中安装 Lighttpd Web 服务器的方法

    通过上述步骤,您可以在 Ubuntu 15.04 或 CentOS 7 上成功安装并配置 Lighttpd Web 服务器。Lighttpd 提供了一种轻量级、高效的解决方案,特别适用于对性能有较高要求的应用场景。无论是简单的静态网站还是复杂的...

    lighttpd-1.4.20-cmake

    5. **安装lighttpd**:编译完成后,使用`sudo make install`将lighttpd及其配置文件安装到系统默认的位置,如`/usr/local/sbin`和`/etc/lighttpd`。 6. **配置lighttpd**:lighttpd的配置文件通常位于`/etc/...

    lighttpd-1.4.55移植配置与测试.rar

    交叉编译最新版的lighttpd-1.4.55,配置与测试CGI与HTML.内含 lighttpd-1.4.55源码,移植教程,cgi测试代码,html测试代码.测试cgi时,浏览器中应该输入192.168.100.30/cgi-bin/xx.cgi .其中 192.168.100.30为开发板的ip

    搭建lighttpd+cgi的代码包

    压缩包文件`lighttpd_cgi`可能包含示例CGI脚本、lighttpd配置示例以及其他辅助文件,用于帮助初学者更好地理解和实践lighttpd与CGI的结合使用。解压并研究这些文件,可以帮助你深入理解这一过程。 总结,通过上述...

    ARM平台lighttpd服务器

    2. **配置lighttpd**: 配置文件通常位于`/etc/lighttpd/lighttpd.conf`。在此文件中,可以设定服务器监听的端口、根目录、访问控制等参数。务必根据实际需求进行定制,以确保安全性。 3. **启动与管理**: 安装完成...

    lighttpd+php in android

    这可能涉及到安装NDK(Android Native Development Kit),设置交叉编译工具链,并对lighttpd的配置文件进行调整以适应Android的环境。 2. **下载PHP-CGI**:可以从PHP官方网站获取适用于Android的预编译版本,或者...

    CentOS下Lighttpd Web服务器安装与配置方法

    安装完成后,你需要检查Lighttpd的配置文件是否正确。在终端中运行: ```bash lighttpd -t -f /etc/lighttpd/lighttpd.conf ``` 如果配置无误,将显示“Syntax OK”。 然后,你可以启动Lighttpd服务: ```bash ...

    lighttpd with H264 support

    4. **配置lighttpd**:补丁安装完成后,你需要修改lighttpd的配置文件(通常是`lighttpd.conf`)。这可能包括设置MIME类型、启用HTTP/2以支持H264编码,以及配置模块以处理MP4文件和提供快进功能。 5. **测试和优化...

    lighttpd-1.4.59.tar.gz

    2. 启动服务:安装完成后,可以使用`sudo lighttpd -D -f /etc/lighttpd/lighttpd.conf`启动lighttpd服务器,其中-D参数表示在后台运行,-f指定配置文件路径。 3. 停止与重启:使用`sudo service lighttpd stop`...

    suse linux下安装php5、Lighttpd .

    ### SUSE Linux 下安装 PHP5 和 Lighttpd 的详细步骤 在 SUSE Linux 系统中安装 PHP5 和 Lighttpd 需要...以上步骤详细介绍了在 SUSE Linux 下安装 PHP5 和 Lighttpd 的全过程,希望能够帮助读者顺利完成安装配置。

Global site tag (gtag.js) - Google Analytics