기본적으로 http://trac.lighttpd.net/trac/wiki/TutorialInstallation에 잘 설명이 되어있긴 하지만 나중에 삽질을 하지 않도록 기록해봅니다.

참고 : source compile 기준입니다.

필요한 library(libpcre, libz)를 설치합니다.

  1. yum install pcre
  2. yum install zlib

그리고 lighttpd 다운로드 : http://www.lighttpd.net/download

  1. wget http://www.lighttpd.net/download/lighttpd-1.4.19.tar.gz
  2. tar xvfz lighttpd-1.4.19.tar.gz

configure, make, make install

  1. cd lighttpd-1.4.19
  2. ./configure
  3. make
  4. make install

기본적으로 /usr/local/에 설치됩니다.

make install 실행한 위치에서 init script를 생성.

  1. sed -e 's/FOO/lighttpd/g' doc/rc.lighttpd.redhat > /etc/init.d/lighttpd

필요한 환경설정을 하구요.

  1. mkdir /etc/lighttpd
  2. cp ./doc/lighttpd.conf /etc/lighttpd
  3. adduser -s /sbin/nologin www
  4. touch /var/log/lighttpd/access.log
  5. touch /var/log/lighttpd/error.log
  6. chown www:www /var/log/lighttpd/access.log
  7. chown www:www /var/log/lighttpd/error.log

설정파일(lighttpd.conf)의 경우 거의 대부분이 주석처리 되어있고 수정할 부분도 많은데요.

lighttpd 문서(http://trac.lighttpd.net/trac/wiki/TutorialConfiguration)에 잘 설명이 되어있습니다.

그리고 설정파일에 추가로

  1. #### external configuration files
    ## mimetype mapping
    include_shell "/usr/share/lighttpd/create-mime.assign.pl"

    ## load enabled configuration files,
    include_shell "/usr/share/lighttpd/include-conf-enabled.pl"

을 등록해 놓으면 virtual host 관리 등이 편리해지더군요.

  • create-mime.assign.pl
    1. #!/usr/bin/perl -w
      use strict;
      open MIMETYPES, "/etc/mime.types" or exit;
      print "mimetype.assign = (\n";
      my %extensions;
      while(<MIMETYPES>) {
        chomp;
        s/\#.*//;
        next if /^\w*$/;
        if(/^([a-z0-9\/+-.]+)\s+((?:[a-z0-9.+-]+[ ]?)+)$/) {
         foreach(split / /, $2) {
           # mime.types can have same extension for different
           # mime types
           next if $extensions{$_};
           $extensions{$_} = 1;
           print "\".$_\" => \"$1\",\n";
         }
        }
      }
      print ")\n";
  • include-conf-enabled.pl
  1. #!/usr/bin/perl -wl

    use strict;
    use File::Glob ':glob';

    my $confdir = "/etc/lighttpd/";
    my $enabled = "conf-enabled/*.conf";

    chdir($confdir);
    my @files = bsd_glob($enabled);

    for my $file (@files)
    {
           print "include \"$file\"";
    }

시스템에 등록합니다.

  1. /sbin/chkconfig --add lighttpd
  2. /sbin/chkconfig lighttpd on

참고 URL

  1. http://mix1009.net/59
  2. http://trac.lighttpd.net/trac/wiki/TutorialInstallation