>  기사  >  백엔드 개발  >  여러 버전의 PHP가 공존하여 발생하는 문제

여러 버전의 PHP가 공존하여 발생하는 문제

WBOY
WBOY원래의
2016-08-10 09:07:311157검색

다음은 nginx와 php-fpm을 사용하는 서버입니다. 여기에는 5.3과 5.5의 두 가지 버전의 PHP가 설치되어 있습니다. 이제 새로운 Redis 확장을 설치하고 싶기 때문에 다음에서 Redis 확장의 소스 코드 패키지를 다운로드했습니다. 공식 웹사이트를 방문하여 컴파일하고, 마지막으로 php.ini에 Extension=redis.so를 추가하고 마지막으로 php-fpm을 다시 시작합니다.

그래서 오류가 발생했습니다. 제가 컴파일한 php 확장 프로그램의 버전이 다르다는 뜻입니다

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

아마도 이유를 발견한 것 같습니다. php-fpm -v을 사용하는 버전은 5.5이고, php -v에서 표시하는 버전은 5.3이고, phpize는 5.3을 사용하기 때문입니다.

그래서 컴파일된 so 파일을 삭제하고 소스코드 패키지를 다시 압축해제하여 컴파일한 후 phpize 5.5 버전을 다시 시작해도 여전히 똑같아서 아무 소용이 없었습니다.

<code>$ /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</code>

이 상황을 어떻게 해결해야 하나요? 버전 5.3은 서버에 있고 다른 사람이 사용할 수 있으므로 삭제하는 것은 불가능합니다.

답글 내용:

다음은 nginx와 php-fpm을 사용하는 서버입니다. 여기에는 5.3과 5.5의 두 가지 버전의 PHP가 설치되어 있습니다. 이제 새로운 Redis 확장을 설치하고 싶기 때문에 다음에서 Redis 확장의 소스 코드 패키지를 다운로드했습니다. 공식 웹사이트를 방문하여 컴파일하고, 마지막으로 php.ini에 Extension=redis.so를 추가하고 마지막으로 php-fpm을 다시 시작합니다.

그래서 오류가 발생했습니다. 제가 컴파일한 php 확장 프로그램의 버전이 다르다는 뜻입니다

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

아마도 이유를 발견한 것 같습니다. php-fpm -v을 사용하는 버전은 5.5이고, php -v에서 표시하는 버전은 5.3이고, phpize는 5.3을 사용하기 때문입니다.

그래서 컴파일된 so 파일을 삭제하고 소스코드 패키지를 다시 압축해제하여 컴파일한 후 phpize 5.5 버전을 다시 시작해도 여전히 똑같아서 아무 소용이 없었습니다.

<code>$ /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</code>

이 상황을 어떻게 해결해야 하나요? 버전 5.3은 서버에 있고 다른 사람이 사용할 수 있으므로 삭제하는 것은 불가능합니다.

PHP 구성 경로를 올바르게 가져오기

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.