امیر عسکری
امیر عسکری
خواندن ۱ دقیقه·۵ سال پیش

حل مشکل php-mongodb _clock_gettime

اگر قصد ارتباط بین php و mongodb روی پلتفورم مک و ال کپیتان داشته باشید، نیاز به php mongo-db دارید و اگر هم از brew برای اون استفاده کنید ، ممکن هست به ارور زیر بخورید:

dyld: lazy symbol binding failed: Symbol not found: _clock_gettime
Referenced from: /usr/local/opt/php56-mongodb/mongodb.so
Expected in: /usr/lib/libSystem.B.dylib
dyld: Symbol not found: _clock_gettime
Referenced from: /usr/local/opt/php56-mongodb/mongodb.so
Expected in: /usr/lib/libSystem.B.dylib

تو این شرایط اول xcode-select رو از اپ استور به آخرین ورژن اپگرید کنید. اگر هم ندارید با دستور زیر نصب کنیدو بعد آپگرید کنید:

xcode-select --install

تو قدم بعدی باید پکیج نصب رو ادیت کنید. با توجه به اینکه چه پکیجی رو انتخاب کردید ،‌مثلا php56-mongodb باید همون پکیج ادیت شه.

brew edit php56-mongodb

و دستور شرطی زیر رو توی قسمت install بزارید:
مثلا یه همچین چیزی:

def install Dir.chdir &quotmongodb-#{version}&quot unless build.head? if MacOS.version == &quot10.11&quot && MacOS::Xcode.installed? && MacOS::Xcode.version >= &quot8.0&quot inreplace %w[src/libbson/src/bson/bson-clock.c], &quotHAVE_CLOCK_GETTIME&quot, &quotUNDEFINED_GIBBERISH&quot end

توجه داشته باشید که ادیتور پیش فرض brew ،ادیتور vim هست واگر بلد نیستید باهاش کار کنید این دو تا دستور بدردتون می خوره:

خروج بدون سیو: :q خروج با سیو: :wq

قدم اخر هم نصب مجدد با استفاده از تغییراتی که الان دادید هست:

brew reinstall -s php56-mongodb


mongodbphp
مدیر کسب و کار، توسعه دهنده وب سابق . علاقه مند به فیزیولوژی مغز ، حیوانات خانگی ، آشپزی.
شاید از این پست‌ها خوشتان بیاید