使用phpize安装php扩展

环境:

CentOs 6.3

php 7

nginx

举例:

安装ssh2扩展


1.登陆http://pecl.php.net,搜索ssh2,如下图所示,注意版本的选择要根据php的版本来

使用phpize安装php扩展

2.下载ssh2扩展文件压缩包(在当前系统哪个目录下载随意)

~# wget http://pecl.php.net/get/ssh2-1.0.tgz

3.解压文件

~# tar -zxvf ssh2-1.0.tgz

4.进入源码目录

~# cd ssh2-1.0/

5.运行phpize命令,写全phpize的路径

~# /usr/local/php/bin/phpize

如果你用MAMP,此时会报错,请见文尾附录->

6.运行configure命令,配置时要将php-config的路径附上

~# ./configure --with-php-config=/usr/local/php/bin/php-config

7.运行make命令

~# make

8.测试编译安装

~# make test

9.正式编译安装

~# sudo make install

10.修改php.ini

结尾加入:extension=ssh2.so

11.重启对应的php-fpm

~# ps aux | grep php-fpm

找到php-fpm的pid,然后

kill {pid}

然后再启动php-fpm

~# /usr/local/php/sbin/php-fpm

如果你用MAMP,直接GUI重启即可


检验结果

打开phpinfo,可以看到:

使用phpize安装php扩展


附录

报错
grep: /Applications/MAMP/bin/php/php5.6.10/include/php/main/php.h: No such file or directory

grep: /Applications/MAMP/bin/php/php5.6.10/include/php/Zend/zend_modules.h: No such file or directory

grep: /Applications/MAMP/bin/php/php5.6.10/include/php/Zend/zend_extensions.h: No such file or directory

Configuring for:

PHP Api Version:

Zend Module Api No:

Zend Extension Api No:
原因

/Applications/MAMP/bin/php/php5.6.10/下缺少include文件夹

因为MAMP把include移到了/usr/include下

所以可以做了一个软连接,先在/Applications/MAMP/bin/php/php5.6.10/下创建空include文件夹,然后执行

ln -s /usr/include/php /Applications/MAMP/bin/php/php5.6.10/include/

如果接下来的make步骤也报错了,并提示

fatal error: ‘pcre.h‘ file not found

解决办法:brew install pcre

上一篇:[Linux][PHP]安装swoole扩展


下一篇:selenium python 报错“ unable to find binary in default location”