欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

多版本php共存导致的问题

程序员文章站 2022-04-10 16:28:04
...
这有一台服务器,使用nginx加php-fpm,里面装了2个版本的PHP,5.3和5.5,现在因为我要安装新redis扩展,于是我从官网下载redis扩展的源码包,进行编译安装,最后在php.ini中加入extension=redis.so最后重启php-fpm。

于是出现了报错,意思就是我编译的php扩展使用的版本不一样

PHP Warning:  PHP Startup: redis: Unable to initialize module
Module compiled with module API=20100525
PHP    compiled with module API=20121212

大概发现了是什么原因,因为使用php-fpm -v的版本是5.5,php -v显示的版本是5.3,phpize使用的是5.3的。

于是把编译好的so文件删除,重新解压源码包编译,使用5.5版本的phpize,发现重启的时候还是一样,并没用什么卵用。

$ /usr/local/php/bin/phpize -v
Configuring for:
PHP Api Version:         20121113
Zend Module Api No:      20121212
Zend Extension Api No:   220121212

$ sudo /usr/local/php/bin/phpize
$ ./configure --with-php-config=/usr/local/php/bin/php-config
$ make
$ sudo make install

请问这种情况我要怎么解决啊?我不可能把5.3的版本删除的,因为是服务器上面可能是别人还用到了。

回复内容:

这有一台服务器,使用nginx加php-fpm,里面装了2个版本的PHP,5.3和5.5,现在因为我要安装新redis扩展,于是我从官网下载redis扩展的源码包,进行编译安装,最后在php.ini中加入extension=redis.so最后重启php-fpm。

于是出现了报错,意思就是我编译的php扩展使用的版本不一样

PHP Warning:  PHP Startup: redis: Unable to initialize module
Module compiled with module API=20100525
PHP    compiled with module API=20121212

大概发现了是什么原因,因为使用php-fpm -v的版本是5.5,php -v显示的版本是5.3,phpize使用的是5.3的。

于是把编译好的so文件删除,重新解压源码包编译,使用5.5版本的phpize,发现重启的时候还是一样,并没用什么卵用。

$ /usr/local/php/bin/phpize -v
Configuring for:
PHP Api Version:         20121113
Zend Module Api No:      20121212
Zend Extension Api No:   220121212

$ sudo /usr/local/php/bin/phpize
$ ./configure --with-php-config=/usr/local/php/bin/php-config
$ make
$ sudo make install

请问这种情况我要怎么解决啊?我不可能把5.3的版本删除的,因为是服务器上面可能是别人还用到了。

PHP-config路径搞对

相关标签: php