xref: /lighttpd1.4/INSTALL (revision 1eda5074)
1bcdc6a3bSJan Kneschke
2bcdc6a3bSJan Kneschke============
3bcdc6a3bSJan KneschkeInstallation
4bcdc6a3bSJan Kneschke============
5bcdc6a3bSJan Kneschke
6bcdc6a3bSJan Kneschke
7140c0fb8SGlenn StraussQuick Installation
8140c0fb8SGlenn Strauss------------------
9bcdc6a3bSJan Kneschke
10140c0fb8SGlenn StraussGet lighttpd source from
11bcdc6a3bSJan Kneschke
120c1aed55SGlenn Strausshttps://www.lighttpd.net/download/
13bcdc6a3bSJan Kneschke
14bcdc6a3bSJan Kneschkeunpack it by ::
15bcdc6a3bSJan Kneschke
16140c0fb8SGlenn Strauss  $ tar xvJf lighttpd-1.4.xx.tar.xz
17bcdc6a3bSJan Kneschke
18bcdc6a3bSJan Kneschkecompile and install it with ::
19bcdc6a3bSJan Kneschke
20140c0fb8SGlenn Strauss  $ cd lighttpd-1.4.xx
21947d3694SGlenn Strauss  $ ./autogen.sh
22140c0fb8SGlenn Strauss  $ ./configure -C
23947d3694SGlenn Strauss  $ make check
24947d3694SGlenn Strauss  $ /usr/bin/sudo make install
25bcdc6a3bSJan Kneschke
26bcdc6a3bSJan Kneschketake look at the configfile in ./doc/lighttpd.conf,
27bcdc6a3bSJan Kneschkemake your own copy of that file and modify it for your needs.
28bcdc6a3bSJan Kneschke
2983d896d0SGlenn Strauss
30140c0fb8SGlenn StraussOnline documentation
31140c0fb8SGlenn Strauss--------------------
32140c0fb8SGlenn Strausshttps://redmine.lighttpd.net/projects/lighttpd/wiki/Devel
33140c0fb8SGlenn Strausshttps://redmine.lighttpd.net/projects/lighttpd/wiki/DevelSubversion
34140c0fb8SGlenn Strausshttps://redmine.lighttpd.net/projects/lighttpd/wiki/InstallFromSource
35140c0fb8SGlenn Strauss
36140c0fb8SGlenn Strauss
37140c0fb8SGlenn StraussCustom Installation
38140c0fb8SGlenn Strauss-------------------
39140c0fb8SGlenn Strauss
40140c0fb8SGlenn Straussrequired packages ::
41140c0fb8SGlenn Strauss
42140c0fb8SGlenn Strauss  autoconf
43140c0fb8SGlenn Strauss  automake
44140c0fb8SGlenn Strauss  libtool
45140c0fb8SGlenn Strauss  m4
46140c0fb8SGlenn Strauss  pkg-config
47140c0fb8SGlenn Strauss
480573ce19SGlenn Straussrecommended additional packages ::
490573ce19SGlenn Strauss
500573ce19SGlenn Strauss  pcre2
510573ce19SGlenn Strauss  pcre2-devel
520573ce19SGlenn Strauss  lua
530573ce19SGlenn Strauss  lua-devel
540573ce19SGlenn Strauss  nettle
550573ce19SGlenn Strauss  nettle-devel
560573ce19SGlenn Strauss
57140c0fb8SGlenn Straussoptional packages for optional features ::
58140c0fb8SGlenn Strauss
59140c0fb8SGlenn Strauss  bzip2-devel         # bzip2      ./configure --with-bzip2
60140c0fb8SGlenn Strauss  bzip2-libs
61140c0fb8SGlenn Strauss  cyrus-sasl          # SASL       ./configure --with-sasl
62140c0fb8SGlenn Strauss  cyrus-sasl-devel
63140c0fb8SGlenn Strauss  gnutls              # GnuTLS     ./configure --with-gnutls
64140c0fb8SGlenn Strauss  gnutls-devel
65140c0fb8SGlenn Strauss  krb5-devel          # Kerberos5  ./configure --with-krb5
66140c0fb8SGlenn Strauss  krb5-libs
67140c0fb8SGlenn Strauss  libbrotli           # brotli     ./configure --with-brotli
68140c0fb8SGlenn Strauss  brotli-devel
69140c0fb8SGlenn Strauss  libdbi              # DBI        ./configure --with-dbi
70140c0fb8SGlenn Strauss  libdbi-devel
71140c0fb8SGlenn Strauss  libdbi-dbd-mysql
72140c0fb8SGlenn Strauss  libdbi-dbd-pgsql
73140c0fb8SGlenn Strauss  libdbi-dbd-sqlite
74*e47e436fSGlenn Strauss  libdeflate          # libdeflate ./configure --with-libdeflate
75*e47e436fSGlenn Strauss  libdeflate-devel
76140c0fb8SGlenn Strauss  libmaxminddb        # MaxMindDB  ./configure --with-maxminddb
77140c0fb8SGlenn Strauss  libmaxminddb-devel
78140c0fb8SGlenn Strauss  libpq               # Postgresql ./configure --with-pgsql
79140c0fb8SGlenn Strauss  libpq-devel
8086c2d309SGlenn Strauss  libunwind-devel     # libunwind  ./configure --with-libunwind
81140c0fb8SGlenn Strauss  libuuid             # libuuid    ./configure --with-webdav-locks
82140c0fb8SGlenn Strauss  libuuid-devel
83140c0fb8SGlenn Strauss  libxml2             # libxml2    ./configure --with-webdav-props
84140c0fb8SGlenn Strauss  libxml2-devel
85140c0fb8SGlenn Strauss  libxml2-static
86140c0fb8SGlenn Strauss  lua                 # Lua        ./configure --with-lua
87140c0fb8SGlenn Strauss  lua-devel
88140c0fb8SGlenn Strauss  mariadb-devel       # MariaDB    ./configure --with-mysql
89140c0fb8SGlenn Strauss  mariadb-libs
90140c0fb8SGlenn Strauss  mbedtls             # mbedTLS    ./configure --with-mbedtls
91140c0fb8SGlenn Strauss  mbedtls-devel
92140c0fb8SGlenn Strauss  nettle              # Nettle     ./configure --with-nettle
93140c0fb8SGlenn Strauss  nettle-devel
94140c0fb8SGlenn Strauss  nss                 # NSS        ./configure --with-nss
95140c0fb8SGlenn Strauss  nss-devel
96140c0fb8SGlenn Strauss  openldap            # OpenLDAP   ./configure --with-ldap
97140c0fb8SGlenn Strauss  openldap-devel
98140c0fb8SGlenn Strauss  openssl-devel       # OpenSSL    ./configure --with-openssl
99140c0fb8SGlenn Strauss  openssl-libs
100140c0fb8SGlenn Strauss  pam                 # PAM        ./configure --with-pam
101140c0fb8SGlenn Strauss  pam-devel
10286c2d309SGlenn Strauss  pcre                # PCRE       ./configure --with-pcre
103140c0fb8SGlenn Strauss  pcre-devel
10486c2d309SGlenn Strauss  pcre2               # PCRE       ./configure --with-pcre2     # (default)
1050573ce19SGlenn Strauss  pcre2-devel
106140c0fb8SGlenn Strauss  sqlite              # SQLite     ./configure --with-webdav-props
107140c0fb8SGlenn Strauss  sqlite-devel
108140c0fb8SGlenn Strauss  valgrind            # valgrind   ./configure --with-valgrind
109140c0fb8SGlenn Strauss  valgrind-devel
11082273a94SGlenn Strauss  wolfssl             # wolfSSL    ./configure --with-wolfssl
11182273a94SGlenn Strauss  wolfssl-devel
11286c2d309SGlenn Strauss  zlib                # zlib       ./configure --with-zlib      # (default)
113140c0fb8SGlenn Strauss  zlib-devel
11486c2d309SGlenn Strauss  libzstd             # zstd       ./configure --with-zstd
115947d3694SGlenn Strauss  libzstd-devel
116140c0fb8SGlenn Strauss
117140c0fb8SGlenn Straussmore options: ./configure --help
118140c0fb8SGlenn Strauss
119140c0fb8SGlenn Straussre-run ./configure after installing packages
120140c0fb8SGlenn Strauss
121140c0fb8SGlenn Strausscompile and install it with ::
122140c0fb8SGlenn Strauss
123140c0fb8SGlenn Strauss  $ cd lighttpd-1.4.xx
124140c0fb8SGlenn Strauss  $ ./autogen.sh        # detect/use newer versions of autotools (if present)
125140c0fb8SGlenn Strauss  $ ./configure -C      # add --with-xxxxx custom flags
126140c0fb8SGlenn Strauss  $ make
127140c0fb8SGlenn Strauss  # sudo make install
128140c0fb8SGlenn Strauss
129140c0fb8SGlenn Strauss
130140c0fb8SGlenn StraussRunning Tests
131140c0fb8SGlenn Strauss-------------
132140c0fb8SGlenn Strauss
133140c0fb8SGlenn Straussrequired packages to run test harness ::
134140c0fb8SGlenn Strauss
135140c0fb8SGlenn Strauss  (e.g. on Fedora 22, sudo dnf install ...)
136140c0fb8SGlenn Strauss  (e.g. on Arch Linux, sudo pacman ... (with lowercased package names))
137140c0fb8SGlenn Strauss
138140c0fb8SGlenn Strauss  perl-Digest
139140c0fb8SGlenn Strauss  perl-Digest-MD5
140140c0fb8SGlenn Strauss  perl-Encode-Locale
141140c0fb8SGlenn Strauss  perl-HTML-Entities-Interpolate
142140c0fb8SGlenn Strauss  perl-HTML-Parser
143140c0fb8SGlenn Strauss  perl-HTML-Tagset
144140c0fb8SGlenn Strauss  perl-HTTP-Date
145140c0fb8SGlenn Strauss  perl-HTTP-Message
146140c0fb8SGlenn Strauss  perl-IO-HTML
147140c0fb8SGlenn Strauss  perl-LWP-MediaTypes
14816f16dbfSGlenn Strauss  perl-Test-Harness
1490573ce19SGlenn Strauss  perl-Test-Simple
150140c0fb8SGlenn Strauss  perl-Tie-Function
151140c0fb8SGlenn Strauss  perl-TimeDate
152140c0fb8SGlenn Strauss
153140c0fb8SGlenn Straussrun test harness
154140c0fb8SGlenn Strauss
155140c0fb8SGlenn Strauss  $ make check
156140c0fb8SGlenn Strauss
157140c0fb8SGlenn Strauss
15883d896d0SGlenn Straussstatic build using SCons
15983d896d0SGlenn Strauss------------------------
16083d896d0SGlenn Strauss
16183d896d0SGlenn Strauss  $ scons -j 4 build_static=1 build_dynamic=0 prefix=/custom/inst/path install
16283d896d0SGlenn Strauss
16383d896d0SGlenn Straussbuild_dynamic is enabled by default in SConstruct and needs to be disabled for
16483d896d0SGlenn Straussthe static build.  See also the BoolVariable() settings in SConstruct for other
16583d896d0SGlenn Straussconfigurable variables that might be set in a customized build.  build_static=1
16683d896d0SGlenn Strausscan be replaced with build_fullstatic=1 to perform lighttpd static build with
16783d896d0SGlenn Straussmodules *and* to link statically against external dependencies.
16883d896d0SGlenn Strauss
16983d896d0SGlenn Strauss
17083d896d0SGlenn Straussstatic build using make
17183d896d0SGlenn Strauss-----------------------
17283d896d0SGlenn Strauss
17383d896d0SGlenn Strauss* edit src/Makefile.am and, in the section under 'if LIGHTTPD_STATIC',
17483d896d0SGlenn Strauss  update lighttpd_SOURCES with each module to be included in the static build
17583d896d0SGlenn Strauss* create src/plugin-static.h with list of modules as PLUGIN_INIT(mod_foo)
17683d896d0SGlenn Strauss  for each module 'mod_foo' to be included in the static build
17783d896d0SGlenn Strauss
17883d896d0SGlenn Strauss  $ LIGHTTPD_STATIC=yes ./configure -C --enable-static=yes
17983d896d0SGlenn Strauss  $ make
18083d896d0SGlenn Strauss  $ sudo make install
181bb93414aSGlenn Strauss
182bb93414aSGlenn Straussbuild using CMake and Xcode on Mac OS X with MacPorts
183bb93414aSGlenn Strauss-----------------------------------------------------
184bb93414aSGlenn Strauss* upgrade to latest Mac OS X
185bb93414aSGlenn Strauss* install Xcode from Apple Store (requires latest Mac OS X)
186bb93414aSGlenn Strauss* install MacPorts from https://www.macports.org/install.php
187bb93414aSGlenn Strauss
188bb93414aSGlenn Strauss  $ xcodebuild --license
189bb93414aSGlenn Strauss  $ xcode-select --install
190bb93414aSGlenn Strauss  $ sudo port selfupdate
1910573ce19SGlenn Strauss  $ sudo port install autoconf automake cmake libtool m4 pcre2 pkgconfig zlib zstd brotli openssl libxml sqlite3 openldap libunwind libunwind-headers mysql57 openldap ossp-uuid
192bb93414aSGlenn Strauss  # Note: some of the above require more fiddling to configure with CMake...
193bb93414aSGlenn Strauss
194bb93414aSGlenn Strauss  # cmake and build
195bb93414aSGlenn Strauss  # (all -DWITH_... flags below are optional)
1960573ce19SGlenn Strauss  $ cmake -Wno-dev -DWITH_PCRE2=1 -DWITH_OPENSSL=1 -DWITH_LUA=1 -DWITH_ZLIB=1 -DWITH_ZSTD=1 -DWITH_BROTLI=1 -DWITH_WEBDAV_PROPS=1 .
197bb93414aSGlenn Strauss  $ make -j 4
198bb93414aSGlenn Strauss  $ make test
199