pecl install mongo - yanlış modül API ile derlemeye devam ediyor


9

Ubuntu 12.04 ile burada çalışıyor, nginx ve php5-fpm

Ben php 5.3 üzerinde iyi çalışan mongo vardı, sonra ondrej / php5 ppa ekledi ve php5.4 için güncellendi. GD ve CURL uzantılarını korudu, ancak mongoyu tutmadı. Php.ini dosyasına satır yeniden ekledi ve hiçbir şey. Sonra başlangıç ​​hatalarını etkinleştirdim ve aldım:

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

Yani, vahşi tahmin, find -name 'mongo.so'dosyayı yaptım ve 20090626/20100525 / ... taşındı ki bu hatayla sonuçlandı:

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

Sonra yaptım pecl uninstall mongove pecl install mongo- 2009'da yeni mongo.so dosyasını yarattı0626 /

Tüm bunlar için biraz yeniyim, umarım bu düzeltmek için kör kolay bir hatadır! Mongo'yu tekrar çalıştırmam gerekiyor.

Yanıtlar:


12

Benim tahminim ya:

  • pecl install mongoaslında önceden oluşturulmuş bir ikili dosya kuruyor (bu gerçekten aptalca olurdu, ama neredeyse şaşırtıcı olmayacaktı); veya
  • php5-dev5.3 paketindeki eski paketi hala oturuyorsunuz peclve 5.4 sürümü yerine bulup kullanıyorsunuz. PHP ile ilgili paketler listesine ( dpkg -l '*php*') bir göz atın ve 5.3 paketin olup olmadığını görün ve yükseltin.

Sadece kendi sorumu yanıtlıyordum! Teşekkürler!
kavisiegel

Peki hangisi o?
womble

2
Güncellemek php5-dev, mongo kaldırmak ve yeniden yüklemek zorunda kaldı .
kavisiegel

benim için mükemmel çalıştı
Oliver Bayes-Shelton

2

Ne olduğunu anladıktan sonra büyük beyinler benzer düşünüyor, womble anlar yayınladı. Cevabı doğru ve benden önce, bu yüzden cevap olarak kabul edeceğim şey, ama gelecekteki referans için çözüm şuydu:

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

Ve elbette, mongo.so zaten php.ini'de pecl'in onu kaldırmaması içindi, bu yüzden yükseltmeyi biraz daha kolay hale getirdi.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.