#apache #模块 #mod-example

apache-rs

Rust FFI用于创建Apache httpd模块

5个版本

0.0.4 2024年4月7日
0.0.3 2024年4月7日
0.0.2 2022年5月12日
0.0.1 2021年11月20日
0.0.0 2021年11月20日

#331 in HTTP服务器

自定义许可

7KB
60

apache-rs

Rust FFI用于创建Apache httpd模块。

附带了一个示例实现,该示例实现了来自Apache httpd文档中的mod_examplehttps://httpd.apache.ac.cn/docs/2.4/developer/modguide.html.

设置

bindgen

https://rust-lang.github.io/rust-bindgen/requirements.html

  • 安装系统软件包
sudo apt install llvm-dev libclang-dev clang

Apache httpd

  • 安装系统软件包
sudo apt install apache2-dev libapr1-dev

构建

FFI

  • 构建项目
cargo build
cargo test --lib

Apache httpd模块

  • 构建Apache httpd模块mod_example
cd examples/mod_example/
cargo build

测试

本地

  • 构建和安装模块
cd examples/mod_example/
cargo build
sudo apxs -i -a -n example ./target/debug/libmod_example.so
cd examples/mod_sum/
cargo build
sudo apxs -i -a -n sum ./target/debug/libmod_sum.so
  • 添加模块配置
sudo tee /etc/apache2/mods-available/example.conf > /dev/null <<EOT
<IfModule example_module>
    <Location "/example">
        SetHandler example-handler
    </Location>
</IfModule>
EOT
sudo a2enmod example
sudo tee /etc/apache2/mods-available/sum.conf > /dev/null <<EOT
<IfModule sum_module>
    AddHandler sum-handler .sum
</IfModule>
EOT
sudo a2enmod sum
  • 重启Apache httpd以加载配置
sudo systemctl restart apache2

无运行时依赖

~0–1.8MB
~36K SLoC