pecl install mongo-잘못된 모듈 API로 계속 컴파일


9

여기에서 우분투 12.04로 작업하기, nginx 및 php5-fpm

mongo가 PHP 5.3에서 잘 작동하고 ondrej / php5 ppa를 추가하고 php5.4로 업데이트했습니다. GD 및 CURL 확장은 유지했지만 몽고는 유지하지 않았습니다. php.ini 파일에 줄을 다시 추가했지만 아무것도 없습니다. 그런 다음 시작 오류를 활성화하고 이것을 얻었습니다.

PHP Startup: Unable to load dynamic library '/usr/lib/php5/20100525/mongo.so' - /usr/lib/php5/20100525/mongo.so: cannot open shared object file: No such file or directory

그래서 거친 추측으로 find -name 'mongo.so'파일을 20090626 /에서 20100525 /로 옮겼습니다.이 오류가 발생했습니다.

PHP Startup: mongo: Unable to initialize module
Module compiled with module API=20090626
PHP    compiled with module API=20100525
These options need to match

그때 한 pecl uninstall mongopecl install mongo- 바로 돌아 20,090,626의 새로운 mongo.so 파일을 만든 /

나는이 모든 것에 약간 익숙하기 때문에 희망적으로 이것은 고치기 쉬운 맹목적인 실수입니다! 몽고를 백업하고 실행해야합니다.

답변:


12

내 생각 엔 :

  • pecl install mongo실제로 사전 빌드 된 바이너리를 설치하고 있습니다 (실제로는 멍청하지만 거의 놀라운 것은 아닙니다). 또는
  • 여전히 php5-dev5.3 설치에서 오래된 패키지를 얻었 pecl으며 5.4 버전 대신 찾아서 사용하고 있습니다. PHP 관련 패키지 목록 ( dpkg -l '*php*')을보고 남은 5.3 패키지가 있는지 확인한 후 업그레이드하십시오.

나는 이것으로 내 자신의 질문에 대답하고있었습니다! 감사!
kavisiegel

그래서 어느 쪽입니까?
womble

2
업데이트 php5-dev하고 mongo를 제거한 다음 다시 설치해야했습니다.
kavisiegel

그것은 나를 위해 완벽하게 작동
올리버 베이 즈 - 쉘튼에게

2

무슨 일이 일어나고 있는지 알아 낸 후 좋은 생각은 비슷하게 생각합니다. 그의 대답은 정확하고 내 앞에 있기 때문에 대답으로 받아 들일 것이지만 나중에 참조 할 수있는 해결책은 다음과 같습니다.

apt-get update
apt-get install php5-dev
pecl uninstall mongo
pecl install mongo
/etc/init.d/php5-fpm restart

물론 mongo.so는 pecl이 제거하지 않은 방식으로 php.ini에 이미 있으므로 업그레이드가 약간 쉬워졌습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.