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