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