需求
因为本人现在的php7是编译安装的,有些扩展是预先没有指定的,现在我这边缺少pcntl扩展,记录下本人的安装过程。其实mac下安装扩展和linux下差不多。本文只适用已经安装好php的情况
准备
下载源码:点我打开
编译安装:先编译安装好,已安装的再继续以下步骤,安装pcntl扩展
找到扩展:pcntl扩展一般在源码的ext目录下,php-7.1.6/ext/pcntl
步骤
1、模糊查询要安装的扩展是否存在
已存在扩展直接测试该扩展是否可用即可,如果什么都没有返回,则继续第2步
php -m | grep 'pcntl'
效果如图:
2、找到pcntl目录位置
cd /Users/xiaoming/php-make/php-7.1.6/ext/pcntl //注意是你下载的那个源码的目录下
3、生成配置文件
/Users/xiaoming/mnmp/php71/bin/phpize //执行phpize命令
效果如图:
4、指定配置文件
./configure --enable-pcntl --with-php-config=/Users/xiaoming/mnmp/php71/bin/php-config
效果如图:
5、执行make命令
make
make install //安装完成后会提示最终pcntl.so的路径
6、修改配置文件
编辑php配置文件,添加 extension=pcntl.so
php -i | grep php.ini //查看配置文件位置
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的语法错误,后观察是c编译器版本问题导致编译失败,指定c编辑器的版本后问题可解决。下次有时间再分享下该类问题的解决办法
(另说明,之后会陆续在园子里写文,毕竟其他平台的文章这里发一点那里发一点还是太麻烦了。。。就在园子里它不香吗)