本文說明如何為 Linux(或類似的 Unix 系統)建構一個完全獨立的、靜態連結的「althttpd」二進制檔。
您需要的東西
- 來自本網站的
althttpd.c
原始程式碼檔案。 - 最新版 OpenSSL 的壓縮檔。
- 常用的 Unix 建構工具,「make」、「gcc」等等。
- 建構 OpenSSL 需要 Perl。
建構步驟
- 編譯靜態 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 建構時,您可以泡杯茶休息一下⋯⋯
- 編譯
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 版本號。
- 使用 cd 命令返回
使用二進制檔
以上就是所有步驟。編譯完成後,只需將產生的二進制檔移至伺服器的 /usr/bin 目錄即可。