Soru Memcache.so ile ilgili sorunlar


Başka birinin yaptığı bir site başlatmam istendi. Memcached çalıştırmak için ihtiyacı olan bir Wordpress mağaza sitesidir ve Memcached ve benim yerel sunucu üzerinde çalışan memcache php eklentisi almak sıkıntı yaşıyordum. Memcached ve memcache PHP eklentisini kurmadan önce, bu hatayı alırdım:

Fatal error: Class 'Memcache' not found in [Path]wp-content/object-cache.php on line 350

Şimdi memcached ve (Homebrew aracılığıyla) memcache PHP eklentisi var, bir "No data received" sayfası alıyorum ve bu hatayı benim Apache hata günlüğüne alıyorum:

dyld: lazy symbol binding failed: Symbol not found: _mmc_queue_pop
  Referenced from: /usr/lib/php/extensions/no-debug-non-zts-20090626/memcache.so
  Expected in: flat namespace

dyld: Symbol not found: _mmc_queue_pop
  Referenced from: /usr/lib/php/extensions/no-debug-non-zts-20090626/memcache.so
  Expected in: flat namespace

[Sat May 05 16:38:27 2012] [notice] child pid 26491 exit signal Trace/BPT trap (5)

Etkinlik İzleyicisi'nde bu pid'i boşuna aramaya çalıştım ve sayfayı her yüklemeye başladığımda değişir. Ayrıca, her yerde _mmc_queue_pop hakkında bir şey bulamıyorum.

Mac OSX Lion, PHP 5.3.3, Memcached 1.4.13 ve Memcache PHP eklentisi 3.0.6 çalıştırıyorum.

Bunu nasıl düzeltebileceğimi bilen var mı?

Teşekkürler!


8
2018-05-05 23:45


Menşei


Rebuild ile memcached -fgnu89-inline içinde CFLAGS/CXXFLAGS. Ne olur inline yeni kurallar altında anahtar kelime neden olur _mmc_queue_pop tüm durumlarda satır içi, hiçbir şey bırakmadan memcache.so dinamik olarak bağlantı vermek için. - David Schwartz
Homebrew için CFLAGS / CXXFLAGS'yi nasıl düzenleyebilirim? Ruby Forumla dosyasında bir şeyleri değiştirmem gerekecek mi? - CourtDemone


Cevaplar:


David'in yorumlarda bahsettiği gibi, memcache eklentisini oluştururken, kendisinin notu DEĞİLDİR, koşmayı eklemelisin configure bunun gibi:

MACOSX_DEPLOYMENT_TARGET=10.7 CFLAGS='-fgnu89-inline' LDFLAGS='-fgnu89-inline' CXXFLAGS='-fgnu89-inline' ./configure

Bu benim için mükemmel çalıştı.


8
2018-05-10 23:46





Memcache.so'nun gerçekten bağlantılı olduğuna emin olmak için ilk adım olarak önerim. Linux üzerinde kullanırdınız lddOSX üzerinde olmalı otool -L IIRC. Bu eklenti, sistemdeki çoklu memcache kitaplıklarının ya da uyumsuz olan bir sürümün yanlış birini tutuyor gibi görünüyor.


2
2018-05-06 00:06



İçin teşekkürler otool -L. - wfaulk
Bu tür şeylerde en güçlüsü değilim. Bunu yapmak için Terminalde tam olarak ne yapmam gerekir? - CourtDemone
Otoolun kullanıma sunulması için Xcode araçlarının yüklü olması gerektiğini görüyorum. Bu durumda bir manpage mevcut olmalıdır. Herhangi bir şekilde, David muhtemelen muhtemelen çivilenmiş problemi var. - rackandboneman
Komut satırı araçlarıyla birlikte Xcode'un en yeni sürümünü yükledim. David'in gönderisine yorumda söylediğim gibi, bunu nasıl uygulayacağımı bilmiyorum. Birisi bana yardım edebilir mi? - CourtDemone
Homebrew'ın belgelerini (eğer memcache’niz de varsa) “configure options” ve CFLAGS’leri nasıl ayarlayacağınızı kontrol edin. Eğer gerçekten mevcut olan “configure option” yoksa sadece CFLAGS ile uğraşmanızı öneriyorum. Yemek kitabı tavsiyesi vermek için homebrew'a çok aşina değilim ve bir "./configure --options && make && make install" kurulum döngüsünün yanıltıcı olabileceğini varsayarak genel tavsiye. Yine de, aynı döngü ile aşinalık, HERHANGİ bir kaynak oluşturma sistemi ile karışan son derece yararlı bir wenn. - rackandboneman


Ek - El Capitan, php56, php56-memcache 3.0.8

David Schwartz ve CourtDemone'un cevaplarını okuduktan sonra okuduktan sonra hala anlamadım. bu cevap çok Homebrew formülü nasıl düzenlenir.

Aşağıdaki formülü çalıştırarak ekledim brew edit php56-memcache ve aşağıdaki satırlarda yapıştırmak:

   .  20     safe_phpize
   .  21 
   +  22     ENV['MACOSX_DEPLOYMENT_TARGET'] = '10.11'
   +  23     ENV['CFLAGS'] = '-fgnu89-inline'
   +  24     ENV['LDFLAGS'] = '-fgnu89-inline'
   +  25     ENV['CXXFLAGS'] = '-fgnu89-inline'
   +  26 
   .  27     system "./configure", "--prefix=#{prefix}",
   .  28                           phpconfig
   .  29     system "make"

2
2017-10-29 04:58



Teşekkürler! Ayrıca başka bir referans: github.com/Homebrew/homebrew-php/issues/2529 - Pedro Casado