CentOS 系統下 PHP 怎麼新增擴充套件?

GameTo發表於2019-02-23

centOS7.5
php7.3

以安裝openssl擴充套件為例,如果沒有下載好原始碼包需先下載

  1. 編譯原始碼
    我的openssl原始碼在/usr/local/src/php/extension/openssl目錄下
    cd /usr/local/src/php/extension/openssl
    執行phpize命令
    執行 ./configure --with-php-config=/usr/local/php/bin/php-config命令
    執行make & make install
    如果報錯pcntl.lo' is not a valid libtool object或者其他類似not a valid libtool object的錯誤
    執行make clean
    make install執行成功之後會產生一個.so檔案,記住這個檔案的位置

    phpize可能會出現以下錯誤

    Cannot find config.m4. 
    Make sure that you run '/opt/local/bin/phpize' in the top level source directory of the module

    config0.m4改名為config.m4或者直接·cp config0.m4 config.m4就可以解決

  2. 配置擴充套件
    使用php --ini命令找到php.ini檔案的位置
    定位到配置檔案位置
    php.ini配置檔案中新增以下內容

    #我的.so檔案統一放在/usr/local/lib/php/extension目錄下
    extension_dir="/usr/local/lib/php/extension"
    extension=openssl.so
  3. 重啟php
    找到php-fpm master程式

    ps aux | grep php-fpm
    root      2367  0.0  0.5 212856  5764 ?        Ss   Feb22   0:03 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)
    www-data  2368  0.0  0.5 214940  5680 ?        S    Feb22   0:00 php-fpm: pool www
    www-data  2369  0.0  0.5 214940  5680 ?        S    Feb22   0:00 php-fpm: pool www
    root     13193  0.0  0.0 110276   900 pts/0    R+   23:15   0:00 grep --color=auto php-fpm

    pid2367
    重啟這個程式
    kill -USR2 2367
    INT, TERM 立刻終止
    QUIT 平滑終止
    USR1 重新開啟日誌檔案
    USR2 平滑過載所有worker程式並重新載入配置和二進位制模組

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章