首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 手動編譯安裝擴展庫完整教程(以 cURL 為例)

     編輯:PHP 相關知識

適用場景

  • PHP 為源碼編譯安裝,未包含所需擴展。
  • 需升級擴展版本(如更新 cURL 支援 HTTP/2)。
  • 系統包管理器無對應版本或版本過舊。

前置條件

  • 已安裝 PHP 開發工具包:phpize、php-config(通常隨 php-devel 或 php5-dev 包提供)。
  • 已安裝目標庫開發文件:如 libcurl-devel / libcurl4-openssl-dev。
  • 擁有 PHP 源碼目錄(編譯時用到的 .c/.h 文件)。

步驟詳解

  1. 進入擴展源碼目錄
    cd /usr/local/src/php-5.3.10/ext/curl
  2. 執行 phpize 生成配置腳本
    /usr/local/php/bin/phpize

    輸出應包含 Configuring for PHP Api Version: 20090626 等信息。

  3. 配置編譯選項
    ./configure --with-php-config=/usr/local/php/bin/php-config

    關鍵:必須指定 --with-php-config 指向正確的 php-config,否則會報 Cannot find php-config 錯誤。

  4. 編譯並安裝
    make && make install

    成功後會提示安裝路徑,如:
    Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/

  5. 啟用擴展

    編輯 php.ini,添加:

    extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/curl.so

    或僅寫 extension=curl.so(前提是 extension_dir 指向該目錄)。

  6. 重啟 Web 服務驗證
    service httpd restart
    # 或
    systemctl restart php-fpm

    執行 php -m | grep curl 或 php -i | grep curl 確認載入。

常見問題

問題解決
phpize: command not found安裝 php-devel (CentOS/RHEL) 或 php5-dev (Debian/Ubuntu)。
configure: error: libcurl not found安裝 libcurl-devel / libcurl4-openssl-dev;或指定路徑 --with-curl=/usr/local/curl。
編譯通過但運行報 undefined symbolPHP 版本與擴展 API 版本不匹配(ZTS/非 ZTS、Debug/非 Debug)。確保使用同一 PHP 環境的 phpize/php-config。
Windows 環境無需編譯,直接下載預編譯 php_curl.dll 放入 ext 目錄,啟用於 php.ini。

通用模板(其它擴展同理)

cd php源碼目錄/ext/目標擴展
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config [擴展專屬選項]
make && make install
# 修改 php.ini 添加 extension=xxx.so
# 重啟服務

查看擴展專屬選項

./configure --help | grep -A2 -B2 'with-擴展名'
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved