使用phpize安装php扩展
环境:
CentOs 6.3
php 7
nginx
举例:
安装ssh2
扩展
1.登陆http://pecl.php.net,搜索ssh2
,如下图所示,注意版本的选择要根据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,可以看到:
附录
报错
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