Althttpd

建構獨立二進制檔
登入

建構獨立二進制檔

本文說明如何為 Linux(或類似的 Unix 系統)建構一個完全獨立的、靜態連結的「althttpd」二進制檔。

您需要的東西

  1. 來自本網站的 althttpd.c 原始程式碼檔案。
  2. 最新版 OpenSSL 的壓縮檔。
  3. 常用的 Unix 建構工具,「make」、「gcc」等等。
  4. 建構 OpenSSL 需要 Perl。

建構步驟

  1. 編譯靜態 OpenSSL 函式庫.

    • 解壓縮 OpenSSL 壓縮檔。將最上層目錄重新命名為「openssl」。
    • 使用 cd 命令進入 openssl 目錄。
    • 執行以下指令
      ./config no-ssl3 no-weak-ssl-ciphers no-shared no-threads --openssldir=/usr/lib/ssl
      CFLAGS=-Os make -e
      
    • 在 OpenSSL 建構時,您可以泡杯茶休息一下⋯⋯

  2. 編譯 althttpd

    • 使用 cd 命令返回 althttpd.c 原始程式碼檔案所在的頂層目錄。
    • 執行
      gcc -I./openssl/include -Os -Wall -Wextra -DENABLE_TLS \
        -o althttpd althttpd.c -L./openssl -lssl -lcrypto -ldl
      
    • 前述指令會建構一個靜態連結 OpenSSL 的二進制檔,但仍會動態連結系統函式庫。要使二進制檔完全靜態連結,請加入 -static 選項。
    • 您也可以選擇性地在上述 gcc 指令中加入 -DALTHTTPD_VERSION='...',其中引號內的文字是將回報給 CGI 腳本的 althttpd 版本號。

使用二進制檔

以上就是所有步驟。編譯完成後,只需將產生的二進制檔移至伺服器的 /usr/bin 目錄即可。