需求
因为本人现在的php7是编译安装的,有些扩展是预先没有指定的,现在我这边缺少pcntl扩展,记录下本人的安装过程。其实mac下安装扩展和linux下差不多。本文只适用已经安装好php的情况
准备
下载源码:点我打开
编译安装:先编译安装好,已安装的再继续以下步骤,安装pcntl扩展
找到扩展:pcntl扩展一般在源码的ext目录下,php-7.1.6/ext/pcntl
步骤
1、模糊查询要安装的扩展是否存在
已存在扩展直接测试该扩展是否可用即可,如果什么都没有返回,则继续第2步
php -m | grep 'pcntl'
效果如图:
image.png
2、查看php配置文件安装位置
php -i | grep php.ini
3、生成配置文件
cd /Users/xiaoming/php-make/php-7.1.6/ext/pcntl //到源码下的pcntl目录
/Users/xiaoming/mnmp/php71/bin/phpize //执行phpize命令
效果如图:
image.png
4、指定配置文件
./configure --enable-pcntl --with-php-config=/Users/xiaoming/mnmp/php71/bin/php-config
效果如图:
image.png
image.png
5、执行make命令
make
make install //安装完成后会提示最终pcntl.so的路径
6、修改配置文件
编辑php配置文件,添加 extension=pcntl.so
vim /Users/xiaoming/mnmp/php71/etc/php.ini
7、重启php-fpm
权限不够可以加上sudo, 配置了nginx或apache也需要重启相关服务
killall php-fpm
php-fpm
8、测试
php中执行pcntl_fork()看能打印出一串数字且不报错即可
<?php
echo pcntl_fork(); //20583
问题
其实本人在编译过程出现过如c编译器版本问题导致编译扩展失败等,下次有时间再补充解决办法
网友评论