Lighttpd(LightHttpd) - 安装/配置

预备


  文章声明

   
作者:
傲风([email protected]      编写时间:2008年12月11日 

网址:http://aofengblog.blog.163.com

 

SUSELinux9
lighttpd-1.4.20.tar.gz
pcre-7.8.tar.gz
zlib-1.2.3.tar.gz


安装


1、Zlib
1)安装Zlib。
./configure --prefix=/nfs10/aofeng/zlib-1.2.3 --shared
Checking for gcc...
Checking for shared library support...
Building shared library libz.so.1.2.3 with gcc.
Checking for unistd.h... Yes.
Checking whether to use vs[n]printf() or s[n]printf()... using vs[n]printf()
Checking for vsnprintf() in stdio.h... Yes.
Checking for return value of vsnprintf()... Yes.
Checking for errno.h... Yes.
Checking for mmap support... Yes.

make
gcc -fPIC -O3 -DUSE_MMAP   -c -o example.o example.c
gcc -fPIC -O3 -DUSE_MMAP   -c -o adler32.o adler32.c
gcc -fPIC -O3 -DUSE_MMAP   -c -o compress.o compress.c
gcc -fPIC -O3 -DUSE_MMAP   -c -o crc32.o crc32.c
gcc -fPIC -O3 -DUSE_MMAP   -c -o gzio.o gzio.c
gcc -fPIC -O3 -DUSE_MMAP   -c -o uncompr.o uncompr.c
gcc -fPIC -O3 -DUSE_MMAP   -c -o deflate.o deflate.c
gcc -fPIC -O3 -DUSE_MMAP   -c -o trees.o trees.c
gcc -fPIC -O3 -DUSE_MMAP   -c -o zutil.o zutil.c
gcc -fPIC -O3 -DUSE_MMAP   -c -o inflate.o inflate.c
gcc -fPIC -O3 -DUSE_MMAP   -c -o infback.o infback.c
gcc -fPIC -O3 -DUSE_MMAP   -c -o inftrees.o inftrees.c
gcc -fPIC -O3 -DUSE_MMAP   -c -o inffast.o inffast.c
gcc -shared -Wl,-soname,libz.so.1 -o libz.so.1.2.3 adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o zutil.o inflate.o infback.o inftrees.o inffast.o
rm -f libz.so libz.so.1
ln -s libz.so.1.2.3 libz.so
ln -s libz.so.1.2.3 libz.so.1
gcc -fPIC -O3 -DUSE_MMAP -o example example.o -L. libz.so.1.2.3
gcc -fPIC -O3 -DUSE_MMAP   -c -o minigzip.o minigzip.c
gcc -fPIC -O3 -DUSE_MMAP -o minigzip minigzip.o -L. libz.so.1.2.3

make check            # 这一步也可以不执行,只是为了校验make是否成功
hello world
zlib version 1.2.3 = 0x1230, compile flags = 0x55
uncompress(): hello, hello!
gzread(): hello, hello!
gzgets() after gzseek:  hello!
inflate(): hello, hello!
large_inflate(): OK
after inflateSync(): hello, hello!
inflate with dictionary: hello, hello!
                *** zlib test OK ***

make install
cp zlib.h zconf.h /nfs10/aofeng/zlib-1.2.3/include
chmod 644 /nfs10/aofeng/zlib-1.2.3/include/zlib.h /nfs10/aofeng/zlib-1.2.3/include/zconf.h
cp libz.so.1.2.3 /nfs10/aofeng/zlib-1.2.3/lib
cd /nfs10/aofeng/zlib-1.2.3/lib; chmod 755 libz.so.1.2.3
cd /nfs10/aofeng/zlib-1.2.3/lib; if test -f libz.so.1.2.3; then \
  rm -f libz.so libz.so.1; \
  ln -s libz.so.1.2.3 libz.so; \
  ln -s libz.so.1.2.3 libz.so.1; \
  (ldconfig || true)  >/dev/null 2>&1; \
fi
cp zlib.3 /nfs10/aofeng/zlib-1.2.3/share/man/man3
chmod 644 /nfs10/aofeng/zlib-1.2.3/share/man/man3/zlib.3

2)查看Zlib安装后生成的文件。
首先进入Zlib安装时用--prefix指定的目录,安装后生成了三个目录:include、lib、share。
ls
include  lib  share

ls -l lib
total 82
lrwxrwxrwx  1 aofeng users    13 2008-12-10 17:14 libz.so -> libz.so.1.2.3
lrwxrwxrwx  1 aofeng users    13 2008-12-10 17:14 libz.so.1 -> libz.so.1.2.3
-rwxr-xr-x  1 aofeng users 81607 2008-12-10 17:14 libz.so.1.2.3

ls -l include
total 75
-rw-r--r--  1 aofeng users  9544 2008-12-10 17:14 zconf.h
-rw-r--r--  1 aofeng users 66188 2008-12-10 17:14 zlib.h

3)将Zlib加入环境变量。
ZLIB_HOME=$USER_HOME/zlib-1.2.3
LD_LIBRARY_PATH=$ZLIB_HOME/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH


2、Pcre
1)安装Pcre。
./configure --prefix=/nfs10/aofeng/pcre-7.8 --enable-utf8 --enable-unicode-properties
…… ……
pcre-7.8 configuration summary:

    Install prefix .................. : /nfs10/nieyong/pcre-7.8
    C preprocessor .................. : gcc -E
    C compiler ...................... : gcc
    C++ preprocessor ................ : g++ -E
    C++ compiler .................... : g++
    Linker .......................... : /usr/i586-suse-linux/bin/ld
    C preprocessor flags ............ : 
    C compiler flags ................ : -O2
    C++ compiler flags .............. : -O2
    Linker flags .................... : 
    Extra libraries ................. : 

    Build C++ library ............... : yes
    Enable UTF-8 support ............ : yes
    Unicode properties .............. : yes
    Newline char/sequence ........... : lf
    \R matches only ANYCRLF ......... : no
    EBCDIC coding ................... : no
    Rebuild char tables ............. : no
    Use stack recursion ............. : yes
    POSIX mem threshold ............. : 10
    Internal link size .............. : 2
    Match limit ..................... : 10000000
    Match limit recursion ........... : MATCH_LIMIT
    Build shared libs ............... : yes
    Build static libs ............... : yes
    Link pcregrep with libz ......... : no
    Link pcregrep with libbz2 ....... : no
    Link pcretest with libreadline .. : no

make
…… ……

make install
…… ……

2)查看Pcre安装的文件。
首先进入Pcre安装时用--prefix指定的目录,安装后生成了四个目录:bin、include、lib、share。
ls
bin  include  lib  share

ls -l bin
total 79
-rwxr-xr-x  1 aofeng users  1260 2008-12-10 17:32 pcre-config
-rwxr-xr-x  1 aofeng users 31899 2008-12-10 17:32 pcregrep
-rwxr-xr-x  1 aofeng users 45875 2008-12-10 17:32 pcretest

ls -l include
total 65
-rw-r--r--  1 aofeng users  6783 2008-12-10 17:32 pcrecpparg.h
-rw-r--r--  1 aofeng users 26253 2008-12-10 17:32 pcrecpp.h
-rw-r--r--  1 aofeng users 12481 2008-12-10 17:32 pcre.h
-rw-r--r--  1 aofeng users  5029 2008-12-10 17:32 pcreposix.h
-rw-r--r--  1 aofeng users  6600 2008-12-10 17:32 pcre_scanner.h
-rw-r--r--  1 aofeng users  6216 2008-12-10 17:32 pcre_stringpiece.h

ls -l lib
total 555
-rw-r--r--  1 aofeng users 221702 2008-12-10 17:32 libpcre.a
-rw-r--r--  1 aofeng users  35430 2008-12-10 17:32 libpcrecpp.a
-rwxr-xr-x  1 aofeng users    887 2008-12-10 17:32 libpcrecpp.la
lrwxrwxrwx  1 aofeng users     19 2008-12-10 17:32 libpcrecpp.so -> libpcrecpp.so.0.0.0
lrwxrwxrwx  1 aofeng users     19 2008-12-10 17:32 libpcrecpp.so.0 -> libpcrecpp.so.0.0.0
-rwxr-xr-x  1 aofeng users  41344 2008-12-10 17:32 libpcrecpp.so.0.0.0
-rwxr-xr-x  1 aofeng users    805 2008-12-10 17:32 libpcre.la
-rw-r--r--  1 aofeng users   3518 2008-12-10 17:32 libpcreposix.a
-rwxr-xr-x  1 aofeng users    879 2008-12-10 17:32 libpcreposix.la
lrwxrwxrwx  1 aofeng users     21 2008-12-10 17:32 libpcreposix.so -> libpcreposix.so.0.0.0
lrwxrwxrwx  1 aofeng users     21 2008-12-10 17:32 libpcreposix.so.0 -> libpcreposix.so.0.0.0
-rwxr-xr-x  1 aofeng users   9087 2008-12-10 17:32 libpcreposix.so.0.0.0
lrwxrwxrwx  1 aofeng users     16 2008-12-10 17:32 libpcre.so -> libpcre.so.0.0.1
lrwxrwxrwx  1 aofeng users     16 2008-12-10 17:32 libpcre.so.0 -> libpcre.so.0.0.1
-rwxr-xr-x  1 aofeng users 215060 2008-12-10 17:32 libpcre.so.0.0.1
drwxr-xr-x  2 aofeng users    512 2008-12-10 17:32 pkgconfig

3)将pcre加入环境变量。
PCRE_HOME=$USER_HOME/pcre-7.8

PATH=$PCRE_HOME/bin:$PATH
export PATH

LD_LIBRARY_PATH=$PCRE_HOME/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH


3、Lighttpd。
1)安装Lighttpd。
./configure --prefix=/nfs10/nieyong/lighttpd-1.4.20
…… ……
checking for perl regular expressions support... yes
checking for pcre-config... /nfs10/nieyong/pcre-7.8/bin/pcre-config
checking for pcre_compile in -lpcre... yes
checking pcre.h usability... yes
checking pcre.h presence... yes
checking for pcre.h... yes
checking for zlib support... yes
checking for deflate in -lz... yes
checking zlib.h usability... yes
checking zlib.h presence... yes
checking for zlib.h... yes
…… ……

configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating doc/Makefile
config.status: creating tests/Makefile
config.status: creating tests/docroot/Makefile
config.status: creating tests/docroot/123/Makefile
config.status: creating tests/docroot/www/Makefile
config.status: creating tests/docroot/www/go/Makefile
config.status: creating tests/docroot/www/indexfile/Makefile
config.status: creating tests/docroot/www/expire/Makefile
config.status: creating distribute.sh
config.status: creating cygwin/Makefile
config.status: creating cygwin/lighttpd.README
config.status: creating openwrt/Makefile
config.status: creating openwrt/control
config.status: creating openwrt/lighttpd.mk
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands

Plugins:

enabled: 
  mod_access
  mod_accesslog
  mod_alias
  mod_auth
  mod_cgi
  mod_compress
  mod_dirlisting
  mod_evhost
  mod_expire
  mod_extforward
  mod_fastcgi
  mod_flv_streaming
  mod_indexfiles
  mod_proxy
  mod_redirect
  mod_rewrite
  mod_rrdtool
  mod_scgi
  mod_secdownload
  mod_setenv
  mod_simple_vhost
  mod_ssi
  mod_staticfile
  mod_status
  mod_trigger_b4_dl
  mod_userdir
  mod_usertrack
  mod_webdav
disabled: 
  mod_cml
  mod_magnet
  mod_mysql_vhost

Features:

enabled: 
  auth-crypt
  compress-bzip2
  compress-deflate
  compress-gzip
  large-files
  network-ipv6
  regex-conditionals
disabled: 
  auth-ldap
  network-openssl
  stat-cache-fam
  storage-gdbm
  storage-memcache
  webdav-locks
  webdav-properties

注意:如果没有将pcre的bin目录加入环境变量PATH中,在执行这个步骤时将报错:
checking for pcre-config... no
configure: error: pcre-config not found, install the pcre-devel package or build with --without-pcre
并且中断安装。

make
…… ……

make install
…… ……

2)查看Lighttpd安装的文件。
首先进入Lighttpd安装时用--prefix指定的目录,安装后生成了四个目录:bin、lib、sbin、share。
ls
bin  lib  sbin  share

ls -l bin
total 25
-rwxr-xr-x  1 aofeng users 25354 2008-12-11 10:25 spawn-fcgi

ls -l lib
total 1370
-rwxr-xr-x  1 aofeng users   812 2008-12-11 10:25 mod_access.la
-rwxr-xr-x  1 aofeng users   830 2008-12-11 10:25 mod_accesslog.la
-rwxr-xr-x  1 aofeng users 41403 2008-12-11 10:25 mod_accesslog.so
-rwxr-xr-x  1 aofeng users 28020 2008-12-11 10:25 mod_access.so
-rwxr-xr-x  1 aofeng users   806 2008-12-11 10:25 mod_alias.la
-rwxr-xr-x  1 aofeng users 29371 2008-12-11 10:25 mod_alias.so
-rwxr-xr-x  1 aofeng users   808 2008-12-11 10:25 mod_auth.la
-rwxr-xr-x  1 aofeng users 71303 2008-12-11 10:25 mod_auth.so
-rwxr-xr-x  1 aofeng users   794 2008-12-11 10:25 mod_cgi.la
-rwxr-xr-x  1 aofeng users 51968 2008-12-11 10:25 mod_cgi.so
-rwxr-xr-x  1 aofeng users   798 2008-12-11 10:25 mod_cml.la
-rwxr-xr-x  1 aofeng users 42773 2008-12-11 10:25 mod_cml.so
-rwxr-xr-x  1 aofeng users   847 2008-12-11 10:25 mod_compress.la
-rwxr-xr-x  1 aofeng users 45232 2008-12-11 10:25 mod_compress.so
-rwxr-xr-x  1 aofeng users   905 2008-12-11 10:25 mod_dirlisting.la
-rwxr-xr-x  1 aofeng users 49330 2008-12-11 10:25 mod_dirlisting.so
-rwxr-xr-x  1 aofeng users   818 2008-12-11 10:24 mod_evasive.la
-rwxr-xr-x  1 aofeng users 27225 2008-12-11 10:24 mod_evasive.so
-rwxr-xr-x  1 aofeng users   812 2008-12-11 10:25 mod_evhost.la
-rwxr-xr-x  1 aofeng users 31803 2008-12-11 10:25 mod_evhost.so
-rwxr-xr-x  1 aofeng users   812 2008-12-11 10:25 mod_expire.la
-rwxr-xr-x  1 aofeng users 33230 2008-12-11 10:25 mod_expire.so
-rwxr-xr-x  1 aofeng users   836 2008-12-11 10:25 mod_extforward.la
-rwxr-xr-x  1 aofeng users 35990 2008-12-11 10:25 mod_extforward.so
-rwxr-xr-x  1 aofeng users   818 2008-12-11 10:25 mod_fastcgi.la
-rwxr-xr-x  1 aofeng users 98847 2008-12-11 10:25 mod_fastcgi.so
-rwxr-xr-x  1 aofeng users   854 2008-12-11 10:24 mod_flv_streaming.la
-rwxr-xr-x  1 aofeng users 32019 2008-12-11 10:24 mod_flv_streaming.so
-rwxr-xr-x  1 aofeng users   830 2008-12-11 10:25 mod_indexfile.la
-rwxr-xr-x  1 aofeng users 29599 2008-12-11 10:25 mod_indexfile.so
-rwxr-xr-x  1 aofeng users   816 2008-12-11 10:25 mod_magnet.la
-rwxr-xr-x  1 aofeng users 22186 2008-12-11 10:25 mod_magnet.so
-rwxr-xr-x  1 aofeng users   842 2008-12-11 10:25 mod_mysql_vhost.la
-rwxr-xr-x  1 aofeng users 23112 2008-12-11 10:25 mod_mysql_vhost.so
-rwxr-xr-x  1 aofeng users   806 2008-12-11 10:25 mod_proxy.la
-rwxr-xr-x  1 aofeng users 50236 2008-12-11 10:25 mod_proxy.so
-rwxr-xr-x  1 aofeng users   893 2008-12-11 10:25 mod_redirect.la
-rwxr-xr-x  1 aofeng users 31520 2008-12-11 10:25 mod_redirect.so
-rwxr-xr-x  1 aofeng users   887 2008-12-11 10:25 mod_rewrite.la
-rwxr-xr-x  1 aofeng users 35654 2008-12-11 10:25 mod_rewrite.so
-rwxr-xr-x  1 aofeng users   818 2008-12-11 10:25 mod_rrdtool.la
-rwxr-xr-x  1 aofeng users 36012 2008-12-11 10:25 mod_rrdtool.so
-rwxr-xr-x  1 aofeng users   800 2008-12-11 10:25 mod_scgi.la
-rwxr-xr-x  1 aofeng users 77361 2008-12-11 10:25 mod_scgi.so
-rwxr-xr-x  1 aofeng users   842 2008-12-11 10:25 mod_secdownload.la
-rwxr-xr-x  1 aofeng users 30691 2008-12-11 10:25 mod_secdownload.so
-rwxr-xr-x  1 aofeng users   812 2008-12-11 10:25 mod_setenv.la
-rwxr-xr-x  1 aofeng users 29386 2008-12-11 10:25 mod_setenv.so
-rwxr-xr-x  1 aofeng users   848 2008-12-11 10:25 mod_simple_vhost.la
-rwxr-xr-x  1 aofeng users 30789 2008-12-11 10:25 mod_simple_vhost.so
-rwxr-xr-x  1 aofeng users   863 2008-12-11 10:25 mod_ssi.la
-rwxr-xr-x  1 aofeng users 85299 2008-12-11 10:25 mod_ssi.so
-rwxr-xr-x  1 aofeng users   836 2008-12-11 10:25 mod_staticfile.la
-rwxr-xr-x  1 aofeng users 38347 2008-12-11 10:25 mod_staticfile.so
-rwxr-xr-x  1 aofeng users   812 2008-12-11 10:25 mod_status.la
-rwxr-xr-x  1 aofeng users 46027 2008-12-11 10:25 mod_status.so
-rwxr-xr-x  1 aofeng users   923 2008-12-11 10:25 mod_trigger_b4_dl.la
-rwxr-xr-x  1 aofeng users 29875 2008-12-11 10:25 mod_trigger_b4_dl.so
-rwxr-xr-x  1 aofeng users   818 2008-12-11 10:25 mod_userdir.la
-rwxr-xr-x  1 aofeng users 32006 2008-12-11 10:25 mod_userdir.so
-rwxr-xr-x  1 aofeng users   830 2008-12-11 10:25 mod_usertrack.la
-rwxr-xr-x  1 aofeng users 31338 2008-12-11 10:25 mod_usertrack.so
-rwxr-xr-x  1 aofeng users   812 2008-12-11 10:25 mod_webdav.la
-rwxr-xr-x  1 aofeng users 60180 2008-12-11 10:25 mod_webdav.so

ls -l sbin
total 591
-rwxr-xr-x  1 aofeng users 573917 2008-12-11 10:25 lighttpd
-rwxr-xr-x  1 aofeng users  14657 2008-12-11 10:25 lighttpd-angel


验证
1)显示Lighttpd的版本信息。
进入sbin目录。
./lighttpd -v
lighttpd-1.4.20 - a light and fast webserver
Build-Date: Dec 11 2008 10:18:59

2)显示编译特性。
./lighttpd -V
lighttpd-1.4.20 - a light and fast webserver
Build-Date: Dec 11 2008 10:18:59

Event Handlers:

        + select (generic)
        + poll (Unix)
        + rt-signals (Linux 2.4+)
        + epoll (Linux 2.6)
        - /dev/poll (Solaris)
        - kqueue (FreeBSD)

Network handler:

        + sendfile

Features:

        + IPv6 support
        + zlib support
        + bzip2 support
        + crypt support
        - SSL Support
        + PCRE support
        - mySQL support
        - LDAP support
        - memcached support
        - FAM support
        - LUA support
        - xml support
        - SQLite support
        - GDBM support

3)拷贝配置文件。
为了便于管理,在lighttpd的安装目录下新建一个目录:config,专门用于存放配置文件。
将配置文件lighttpd.conf从lighttpd的安装源文件的doc目录下复制到config目录下。

4)建立应用根目录。
仿JAVA的WEB容器,在lighttpd的安装目录下建立一个目录:webapps,作为lighttpd的默认应用根目录。
修改配置文件:
server.document-root        = "/srv/www/htdocs/"
将“=”后面的值修改成实际的路径,这里是$LIGHTTPD_HOME/webapps。

5)建立日志目录。
在lighttpd的安装目录下建立一个目录:logs,作为存放lighttpd存放日志的目录。
修改配置文件:
server.errorlog             = "/var/log/lighttpd/error.log"
accesslog.filename       = "/var/log/lighttpd/access.log"

6)检查Lighttpd的配置文件。
./lighttpd -t -f /nfs10/aofeng/lighttpd-1.4.20/config/lighttpd.conf 
Syntax OK

7)启动Lighttpd。
./lighttpd -f /nfs10/nieyong/lighttpd-1.4.20/config/lighttpd.conf

8)打开浏览器,输入URL,界面如下(这是我自定义的一个主页):



参考资料
1、 http://redmine.lighttpd.net/wiki/lighttpd/TutorialInstallation

你可能感兴趣的:(C++,配置管理,C#,gcc,lighttpd)