CentOS 系统下 PHP 怎么添加扩展?

先决环境

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 协议》,转载必须注明作者和本文链接
讨论数量: 1

安装swoole还会碰到C compiler found in $PATH,安装gcc就好了

configure.sh:error:no acceptable C compiler found in $PATH
See 'config.log' for more details
#yum install glibc-headers gcc-c++
#yum -y install gcc
5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!