Mac系统下给自带(或者XAMPP集成环境)给php安装pcntl扩展附带错误解决方法

php自学小萌新踩了N多坑最后才安装测试成功,分享给大家,希望和我一样的新手看到后能少走弯路。废话不多说了,直接进入正题

一、首先检查系统自带的PHP版本

$ php -v

PHP 7.1.16 (cli) (built: Mar 31 2018 02:59:59) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies

上面显示PHP 7.1.6,那么去PHP官网下载对应版本的php-7.1.16.tar.gz的包.

PS: 根据自己系统显示的版本号下载对应的包文件

二、生成pcntl.so文件

下载完成后解压,解压后进入到对应的文件目录

~用户名 $ cd  php-7.1.16
~php-7.1.16 $ cd ext/pcntl
~ pcntl $ phpize

执行`phpize`可能会报以下错误(没有错误请忽略):
Cannot find autoconf. Please check your autoconf
installation and the $PHP_AUTOCONF environment
variable. Then, rerun this script.

解决方法:brew install autoconf

~ pcntl $ ./configure
~ pcntl $ make

执行`make`可能会报以下错误pcntl.c: php.h file can not found
解决方法:xcode-select install
ps:不要问我为什么,我也不知道(捂脸.jpg)

执行完成后,在modules文件夹下面会生成一个pcntl.so的扩展文件

三、导入pcntl.so文件

Mac OS X 10.11之后系统自带的php扩展文件夹是不能修改的,sudo 777也不行,这个时候我们要自己创建一个扩展文件夹my-php-extension(文件名可随意,如果你设置的文件名不是my-php-extension,后面出现my-php-extension的地方你都要用自己创建的文件夹替换),然后把pcntl.so拷贝过去:

~ pcntl $ mkdir /usr/local/my-php-extension
~ pcntl $ sudo cp ./modules/pcntl.so /usr/local/my-php-extension/
输入密码确定就行

然后进入/ect/目录,拷贝php.ini.default重命名为php.ini,在查看简介里面开启读写权限,接着执行以下操作:

$ sudo echo 'extension= /usr/local/my-php-extension/pcntl.so' >> /ect/php.ini
输入密码确定就行

四、测试是否安装成功

~ pcntl $ php --ri pcntl

pcntl

pcntl support => enabled

至此一切搞定!

五、XAMPP等集成环境安装pcntl扩展

流程和上面基本一致,但是需要用到XAMPP自带的php进行操作,有错误的话可以直接操控上面的解决方法

$ /Applications/XAMPP/xamppfiles/bin/php -v

PHP 5.6.38(cli) (built: Mar 31 2018 02:59:59) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies

$ cd  php-5.6.38
~php-5.6.38 $ cd ext/pcntl
~ pcntl $  /Applications/XAMPP/xamppfiles/bin/phpize
~ pcntl $ ./configure 
~ pcntl $ make
~ pcntl $ sudo cp ./modules/pcntl.so /Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20131226

ps: no-debug-non-zts-20131226这个文件夹名称每个人都可能不一样,要用自己的

最后在/Applications/XAMPP/xamppfiles/etc/php.ini 增加扩展extension=pcntl.so
这样基本就行了,不放心的话可以再测试下php --ri pcntl

你可能感兴趣的:(Mac系统下给自带(或者XAMPP集成环境)给php安装pcntl扩展附带错误解决方法)