Saya diminta untuk meluncurkan situs yang dibuat orang lain. Ini adalah situs toko Wordpress yang membutuhkan Memcached untuk dijalankan, dan saya mengalami kesulitan dalam memcached dan plugin php memcache bekerja di server lokal saya. Sebelum menginstal memcached dan memcache PHP plugin, saya akan mendapatkan kesalahan ini:
Fatal error: Class 'Memcache' not found in [Path]wp-content/object-cache.php on line 350
Sekarang saya telah memcached dan plugin memcache PHP diinstal (melalui Homebrew), saya mendapatkan halaman "Tidak ada data yang diterima", dan mendapatkan kesalahan ini di log kesalahan Apache saya:
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)
Saya sudah mencoba mencari pid itu di Activity Monitor tetapi tidak berhasil, dan itu berubah setiap kali saya mencoba memuat halaman. Juga, saya tidak dapat menemukan apa pun tentang _mmc_queue_pop di mana saja.
Saya menjalankan Mac OSX Lion, PHP ver 5.3.8, Memcached ver 1.4.13, dan Memcache PHP plugin ver 3.0.6.
Adakah yang tahu bagaimana saya bisa memperbaikinya?
Terima kasih!
-fgnu89-inline
diCFLAGS
/CXXFLAGS
. Apa yang terjadi adalahinline
kata kunci di bawah aturan baru menyebabkan_mmc_queue_pop
inline dalam semua kasus, tidak meninggalkan apa pun untukmemcache.so
tautan secara dinamis.Jawaban:
Seperti yang disebutkan David dalam komentar, ketika membuat plugin memcache, TIDAK memcached dirinya sendiri, Anda harus menambahkan run
configure
seperti ini:Itu bekerja dengan baik untuk saya.
sumber
Saya menyarankan sebagai langkah pertama untuk memastikan memcache.so benar-benar terkait. Di linux yang akan Anda gunakan
ldd
, pada OSX itu harusotool -L
IIRC. Ini terlihat seperti plugin mendapatkan salah satu dari beberapa pustaka memcache pada sistem, atau versi yang tidak kompatibel.sumber
Tambahan - El Capitan, php56, php56-memcache 3.0.8
Setelah membaca jawaban David Schwartz dan CourtDemone, saya masih belum mengerti, sampai saya membaca jawaban ini di SO tentang cara mengedit formula rumahan.
Saya menambahkan berikut ini ke rumus dengan menjalankan
brew edit php56-memcache
dan menempelkan di baris berikut:sumber