Skip to content

Build

The default build compiles OpenSSL, APR, APR-util, httpd and nghttp3 from the submodules. Use it when the system httpd's module magic number is too old.

git submodule update --init
git submodule update --init --recursive dependencies/nghttp3
cmake -B build
cmake --build build

The module is written to build/lib/mod_http3.so.

Only nghttp3 needs recursion, for lib/sfparse. Recursing everywhere also clones OpenSSL's external test submodules, which the build never uses.

Requirements

Dependency Minimum
OpenSSL 3.5.0 with QUIC support
Apache httpd 2.5.1+ or 2.4.69+
APR 1.7.0
APR-util 1.6.0
nghttp3 1.18.0

The submodule build produces these. Supply your own with the WITH_* options only if they meet the minimums; a distribution httpd is usually rejected on MMN.

Custom Prefixes

git submodule update --init dependencies/nghttp3
cmake -B build \
    -DWITH_SSL=/opt/openssl \
    -DWITH_HTTPD=/opt/httpd \
    -DBUILD_EXAMPLES=OFF \
    -DBUILD_TESTS=OFF
cmake --build build

Set WITH_APR and WITH_APU when APR and APR-util are not part of the httpd prefix. See the full installation reference for package builds and every CMake option.