CentOS 4.3 (Kernel 2.6.9) 環境下,安裝 libssh2 並編譯 ssh2.so 擴展後,執行 php -i 即發生 core dump。錯誤訊息顯示找不到 libssh2.so,加入 LD_LIBRARY_PATH 後反而導致 PHP 崩潰。
libssh2 (1.9+)、**PHP 7/8** 需要 glibc 2.17+、C++11 支援、OpenSSL 1.1.1+。**強烈建議遷移至 CentOS 7/8/9、Rocky Linux 8/9、Ubuntu 20.04/22.04 LTS**。舊版 CentOS 4 已無任何安全更新,運行在生產環境極高風險。
若必須維持 CentOS 4(極不建議):
# 查詢可用舊版
yum list php-ssh2 libssh2
# 安裝舊版(可能為 php-ssh2-0.11, libssh2-0.18 等)
yum install php-ssh2 libssh2
# 重啟 php-fpm / httpd
service httpd restart
此法受限於舊版功能缺失(不支援新加密演算法)、安全漏洞。
./configure --with-ssh2=/usr/local/libssh2-old \
--disable-all --enable-cli --with-openssl=/usr/local/ssl-old \
# 需自行編譯舊版 OpenSSL、libssh2 至獨立前綴
make && make install
極度複雜,需解決所有依賴庫版本鎖定,不推薦生產使用。
執行 php test_ssh2.php,若無 Core Dump 且回傳 resource,代表擴展正常載入。
**CentOS 4.3 無法穩定運行現代 PHP SSH2 擴展**。Core Dump 本質是 ABI 衝突。請將精力投入**系統升級遷移**,而非在舊版上打補丁。若受限於硬體/廠商,請在隔離網路、嚴格防火牆下運行,並制定淘汰時間表。