xref: /lighttpd1.4/INSTALL (revision 16f16dbf)
1
2============
3Installation
4============
5
6
7Quick Installation
8------------------
9
10Get lighttpd source from
11
12https://www.lighttpd.net/download/
13
14unpack it by ::
15
16  $ tar xvJf lighttpd-1.4.xx.tar.xz
17
18compile and install it with ::
19
20  $ cd lighttpd-1.4.xx
21  $ ./autogen.sh
22  $ ./configure -C
23  $ make check
24  $ /usr/bin/sudo make install
25
26take look at the configfile in ./doc/lighttpd.conf,
27make your own copy of that file and modify it for your needs.
28
29
30Online documentation
31--------------------
32https://redmine.lighttpd.net/projects/lighttpd/wiki/Devel
33https://redmine.lighttpd.net/projects/lighttpd/wiki/DevelSubversion
34https://redmine.lighttpd.net/projects/lighttpd/wiki/InstallFromSource
35
36
37Custom Installation
38-------------------
39
40required packages ::
41
42  autoconf
43  automake
44  libtool
45  m4
46  pcre
47  pcre-devel
48  pkg-config
49
50optional packages for optional features ::
51
52  bzip2-devel         # bzip2      ./configure --with-bzip2
53  bzip2-libs
54  cyrus-sasl          # SASL       ./configure --with-sasl
55  cyrus-sasl-devel
56  gdbm                # GDBM       ./configure --with-gdbm
57  gdbm-devel
58  GeoIP-devel         # GeoIP      ./configure --with-geoip
59  GeoIP
60  gnutls              # GnuTLS     ./configure --with-gnutls
61  gnutls-devel
62  krb5-devel          # Kerberos5  ./configure --with-krb5
63  krb5-libs
64  libbrotli           # brotli     ./configure --with-brotli
65  brotli-devel
66  libdbi              # DBI        ./configure --with-dbi
67  libdbi-devel
68  libdbi-dbd-mysql
69  libdbi-dbd-pgsql
70  libdbi-dbd-sqlite
71  libmaxminddb        # MaxMindDB  ./configure --with-maxminddb
72  libmaxminddb-devel
73  libmemcached-devel  # Memcached  ./configure --with-memcache
74  libmemcached-libs
75  libpq               # Postgresql ./configure --with-pgsql
76  libpq-devel
77  libunwind           # libunwind  ./configure --with-libunwind
78  libuuid             # libuuid    ./configure --with-webdav-locks
79  libuuid-devel
80  libxml2             # libxml2    ./configure --with-webdav-props
81  libxml2-devel
82  libxml2-static
83  lua                 # Lua        ./configure --with-lua
84  lua-devel
85  mariadb-devel       # MariaDB    ./configure --with-mysql
86  mariadb-libs
87  mbedtls             # mbedTLS    ./configure --with-mbedtls
88  mbedtls-devel
89  nettle              # Nettle     ./configure --with-nettle
90  nettle-devel
91  nss                 # NSS        ./configure --with-nss
92  nss-devel
93  openldap            # OpenLDAP   ./configure --with-ldap
94  openldap-devel
95  openssl-devel       # OpenSSL    ./configure --with-openssl
96  openssl-libs
97  pam                 # PAM        ./configure --with-pam
98  pam-devel
99  pcre                # PCRE       ./configure --with-pcre      # (default)
100  pcre-devel
101  sqlite              # SQLite     ./configure --with-webdav-props
102  sqlite-devel
103  valgrind            # valgrind   ./configure --with-valgrind
104  valgrind-devel
105  wolfssl             # wolfSSL    ./configure --with-wolfssl
106  wolfssl-devel
107  zlib                # zlib       ./configure --with-zlib
108  zlib-devel
109  zstd                # zstd       ./configure --with-zstd
110  libzstd-devel
111
112more options: ./configure --help
113
114re-run ./configure after installing packages
115
116compile and install it with ::
117
118  $ cd lighttpd-1.4.xx
119  $ ./autogen.sh        # detect/use newer versions of autotools (if present)
120  $ ./configure -C      # add --with-xxxxx custom flags
121  $ make
122  # sudo make install
123
124
125Running Tests
126-------------
127
128required packages to run test harness ::
129
130  (e.g. on Fedora 22, sudo dnf install ...)
131  (e.g. on Arch Linux, sudo pacman ... (with lowercased package names))
132
133  perl-CGI
134  perl-Digest
135  perl-Digest-MD5
136  perl-Encode-Locale
137  perl-HTML-Entities-Interpolate
138  perl-HTML-Parser
139  perl-HTML-Tagset
140  perl-HTTP-Date
141  perl-HTTP-Message
142  perl-IO-HTML
143  perl-LWP-MediaTypes
144  perl-Test-Harness
145  perl-Tie-Function
146  perl-TimeDate
147
148run test harness
149
150  $ make check
151
152
153static build using SCons
154------------------------
155
156  $ scons -j 4 build_static=1 build_dynamic=0 prefix=/custom/inst/path install
157
158build_dynamic is enabled by default in SConstruct and needs to be disabled for
159the static build.  See also the BoolVariable() settings in SConstruct for other
160configurable variables that might be set in a customized build.  build_static=1
161can be replaced with build_fullstatic=1 to perform lighttpd static build with
162modules *and* to link statically against external dependencies.
163
164
165static build using make
166-----------------------
167
168* edit src/Makefile.am and, in the section under 'if LIGHTTPD_STATIC',
169  update lighttpd_SOURCES with each module to be included in the static build
170* create src/plugin-static.h with list of modules as PLUGIN_INIT(mod_foo)
171  for each module 'mod_foo' to be included in the static build
172
173  $ LIGHTTPD_STATIC=yes ./configure -C --enable-static=yes
174  $ make
175  $ sudo make install
176
177build using CMake and Xcode on Mac OS X with MacPorts
178-----------------------------------------------------
179* upgrade to latest Mac OS X
180* install Xcode from Apple Store (requires latest Mac OS X)
181* install MacPorts from https://www.macports.org/install.php
182
183  $ xcodebuild --license
184  $ xcode-select --install
185  $ sudo port selfupdate
186  $ sudo port install autoconf automake cmake libtool m4 pcre pkgconfig zlib zstd brotli openssl libxml sqlite3 openldap libunwind libunwind-headers mysql57 libev gdbm openldap ossp-uuid
187  # Note: some of the above require more fiddling to configure with CMake...
188
189  # cmake and build
190  # (all -DWITH_... flags below are optional)
191  $ cmake -Wno-dev -DWITH_OPENSSL=1 -DWITH_LUA=1 -DWITH_ZLIB=1 -DWITH_ZSTD=1 -DWITH_BROTLI=1 -DWITH_WEBDAV_PROPS=1 .
192  $ make -j 4
193  $ make test
194
195  # Note: many tests fail if not built with openssl
196  # lighttpd will not start up with tests/lighttpd.conf
197  #   (mod_secdownload fails to configure hmac-sha1 and hmac-sha256)
198