跳转到内容

从源码构建

依赖最低版本包名
CMake3.14cmake
GCC 或 Clang支持 C11gcc / clang
C++ 编译器C++17(仅测试需要)g++ / clang++
libcrypt任意libcrypt-devel / libcrypt-dev

仅构建模块即可生成 LiteHTTPD-Thin — 运行在原生 OLS 上的 .so 文件。要获得 LiteHTTPD-Full,还需要应用 OLS 补丁并重新构建 OLS 二进制文件(参见补丁说明),或安装预构建的 openlitespeed-litehttpd RPM。

Terminal window
# Release 构建(仅模块 -- 生成 Thin 版本)
cmake -B build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF
cmake --build build -j$(nproc) --target litehttpd_htaccess
# 输出:build/litehttpd_htaccess.so

完整构建(模块 + 工具 + 测试)

Section titled “完整构建(模块 + 工具 + 测试)”
Terminal window
cmake -B build -DCMAKE_BUILD_TYPE=Debug
cmake --build build -j$(nproc)
# 运行全部 1036 个测试
ctest --test-dir build --output-on-failure -j$(nproc)
目标输出描述
litehttpd_htaccesslitehttpd_htaccess.soLSIAPI 模块
litehttpd-confconvlitehttpd-confconv配置转换器 CLI
unit_teststests/unit_tests单元测试二进制文件
property_teststests/property_tests基于属性的测试
compat_teststests/compat_tests兼容性测试
confconv_teststests/confconv_tests配置转换器测试
Terminal window
cmake -B build -DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_C_FLAGS="-fsanitize=address,undefined -fno-omit-frame-pointer" \
-DCMAKE_CXX_FLAGS="-fsanitize=address,undefined -fno-omit-frame-pointer" \
-DCMAKE_EXE_LINKER_FLAGS="-fsanitize=address,undefined"
cmake --build build -j$(nproc)
ASAN_OPTIONS=detect_leaks=0 ctest --test-dir build --output-on-failure
Terminal window
cmake -B build-arm64 \
-DCMAKE_C_COMPILER=aarch64-linux-gnu-gcc \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_TESTING=OFF
cmake --build build-arm64 --target litehttpd_htaccess