cài đặt pecl mongo - tiếp tục biên dịch với API mô-đun sai


9

Làm việc với Ubuntu 12.04 tại đây, nginx và php5-fpm

Tôi đã có mongo hoạt động tốt trên php 5.3, sau đó tôi đã thêm pond ondrej / php5 và cập nhật lên php5.4. Nó giữ các phần mở rộng GD và CURL, nhưng không mongo. Tôi đã thêm lại dòng vào tệp php.ini và không có gì. Sau đó, tôi kích hoạt lỗi khởi động và nhận được điều này:

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

Vì vậy, đoán mò, tôi đã làm find -name 'mongo.so'và chuyển tệp từ 20090626 / sang 20100525 / ... dẫn đến lỗi này:

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

Sau đó tôi đã làm pecl uninstall mongopecl install mongo- đã tạo ra tệp mongo.so mới ngay trong 20090626 /

Tôi là người mới đối với tất cả những điều này vì vậy hy vọng đây là một lỗi dễ bị mù! Tôi chỉ cần lấy mongo sao lưu và chạy.

Câu trả lời:


12

Tôi đoán là một trong hai:

  • pecl install mongothực sự đang cài đặt một nhị phân dựng sẵn (sẽ thực sự ngu ngốc, nhưng sẽ gần như không đáng ngạc nhiên); hoặc là
  • Bạn vẫn có php5-devgói cũ từ bản cài đặt 5.3 của mình, và peclđang tìm và sử dụng gói đó thay vì phiên bản 5.4. Hãy xem danh sách các gói liên quan đến PHP của bạn ( dpkg -l '*php*') và xem liệu còn 5 gói nào còn lại không, và nâng cấp chúng.

Tôi chỉ trả lời câu hỏi của riêng tôi với điều này! Cảm ơn!
kavisiegel

Vậy đó là cái nào?
womble

2
Tôi đã phải cập nhật php5-dev, gỡ cài đặt mongo sau đó cài đặt lại.
kavisiegel

điều đó làm việc hoàn hảo với tôi
Oliver Bayes-Shelton

2

Những bộ óc vĩ đại nghĩ giống nhau, womble đăng những khoảnh khắc sau khi tôi nhận ra chuyện gì đang xảy ra. Câu trả lời của anh ấy là chính xác và trước mắt tôi vì vậy đó là những gì tôi sẽ chấp nhận làm câu trả lời, nhưng để tham khảo trong tương lai, giải pháp là:

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

Và tất nhiên, mongo.so đã có trong php.ini theo cách mà pecl không loại bỏ nó, do đó việc nâng cấp dễ dàng hơn một chút.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.