使用phpize安装php扩展

环境:

CentOs 6.3
php 7
nginx

举例:

安装ssh2扩展


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

2021-04-06-22-11-21

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,可以看到:

2021-04-06-22-11-30


附录

报错
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

posted @ 2016-12-02 12:47  小蒋不素小蒋  阅读(17216)  评论(0编辑  收藏  举报

ICP证:沪ICP备20014317号