از مبتکرانِ خیلی خیلی زیاد پروژه و آزمایشگاههای WP Engine یک محیط آمادهی توسعهی مجازی (واگرانت) برای HHVM و PHP که بهراحتی قابل استفاده است، ارائه میشود! (در صورت نیاز به توضیح هر یک از اصطلاحات این پست، لغات تخصصی در پایین صفحه آمده است.)
«عطارد واگِرَنت» (Mercury Vagrant) یکی از پروژههای متنباز آزمایشگاههای WP Engine است که با هدف ترکیب قدرت HHVM و PHP برای ارائهی محیطی کارآمدتر در توسعهی وردپرس ایجاد شده است. این پروژه، بستری مناسب برای توسعهدهندگانی محسوب میشود که به دنبال سرعت و عملکرد بالاتر در اجرای وبسایتهای خود هستند. برای بهرهبرداری بیشتر از مزایای چنین ابزارهایی و بهبود رتبه سایت در موتورهای جستجو، توصیه میشود از خدمات سئو وردپرس استفاده کنید و همچنین در صورت نیاز به بازطراحی و ارتقای ساختار وبسایت، از خدمات طراحی سایت با وردپرس بهره ببرید.
هدف خاص این ماشین مجازی چیست؟
ما میخواهیم تا حد امکان، تمها، افزونهها و سرویسها روی HHVM و وردپرس کار کنند. اما برای این کار، باید ابزارهایی ارائه دهیم که توسعه دهندگان بتوانند بهراحتی برای HHVM برنامهنویسی و آن را آزمایش کنند. وردپرس روی HHVM نسبتا جدید است، بنابراین حذف متغیرها در میان تیمها در فرآیند توسعه بسیار مهم است. واگرانت به وضوح پاسخ این نیاز است.
پس با در نظر داشتن این موضوع، «مرکوری واگرنت» یک محیط توسعه است که هدف آن، راهاندازی آسان افراد برای توسعه پیشرفته وردپرس و HHVM است. واگرنت برای برخی از توسعهدهندگان تازهکار یا توسعهدهندگانی که در میانهی فرایند یادگیری خود هستند، کمی دلهرهآور میتواند باشد. تیم آزمایشگاهها تصمیم گرفت که فرایند استفاده از واگرنت را سادهتر کرده و استفاده و پذیرش آن را افزایش دهیم. همچنین، برای توسعهدهندگان باتجربه، میخواهیم با ارائه پایهای مناسب برای کار روی پیکربندیهای پیشرفتهتر، در وقت آنها صرفهجویی کنیم.
و همه اینها تحت مجوز GPL هستند! بنابراین میتوانید مشارکت کنید و به سادهتر شدن گردش کار توسعه HHVM در این پروژه متعلق به جامعه کمک کنید.
معرفی مرکوری وگنت (حامل کالاهای سنگین)
در پروژه متنباز واگرا موجود است
- راهنمای نصب و راه اندازی سریع (به صورت ویدئو و متن)
- ابزاری بسیار ساده برای آزمایش آدرسهای اینترنتی و سوییچ کردن بین PHP و HHVM
- اسکریپتهای پیکربندی خودکار برای شروع سریع با تمام ابزارها
- توانایی اشکال زدایی در واگانت (WP_debug و ابزارهای دیگر)
- امکان تست بارگذاری در واگِرانت
آزمایش PHP و HHVM روی یک ماشین مجازی وگراانت
ما طرفداران پروپاقرص HHVM هستیم و امیدواریم که Mercury Vagrant به افزایش سازگاری با بخشهای بیشتری از اکوسیستم وردپرس کمک کند. اما این Vagrant فقط برای این منظور نیست و میتوان از آن برای توسعه به سبک استاندارد PHP نیز استفاده کرد.
به عنوان مثال، بعد از نصب مرکوری واگرنت، میتوانید از آدرس اینترنتی زیر برای مشاهدهی دقیق عملکرد HHVM استفاده کنید: آدرس اینترنتی اچاچویام دات اچجیوی دات دیوی
اما صبر کنید! آیا هنوز هم روی PHP به خوبی اجرا میشود؟ بیایید نگاهی بیندازیم: آدرس وبسایت PHP
یا شاید بخواهید PHP را با حافظه پنهان وارنیش آزمایش کنید. پنهانگاه موقت فایلهای PHP
یا اینکه با وارنیش و HHVM آزمایش شود کش (یا حافظه پنهان) HHVM.
یک ولگرد. هر دو نسخه. آزمایش اولیه آسان.
این واگرا چیست؟نهبرای؟
این سرور مجازی برای شبیهسازی هیچ هاست خاصی، از جمله خود WP Engine، طراحی نشده است، بلکه قرار است برای همه سرورها و هاستها قابل استفاده باشد.
این سیستم طوری طراحی نشده که در صورت بروز مشکل از HHVM به PHP برگردد. ما میخواهیم کاربران بتوانند ببینند کدشان کجا دچار مشکل میشود، بنابراین سیستمها را همزمان اجرا میکنیم. این کار به کاربران در رفع اشکال و آمادهسازی واقعی برای HHVM کمک خواهد کرد.
این یک پروژه متنباز است!
مرکوری وگَرَنت یک پروژه متنباز است که با حمایت آزمایشگاههای WP Engine، در آیندهای قابل پیشبینی روی آن کار خواهیم کرد. این پروژه مانند هسته اصلی وردپرس، تحت مجوز GPLv2 کاملاً مجاز است. لازم به ذکر است که ممکن است قبل از ادغام چند تغییر، متن حق تکثیر را بهروزرسانی کنیم.
از آنجایی که این نسخه اولیه است، در صورت بروز هر گونه مشکل، درخواست، تغییر یا پیشنهادی، میتوانید آن را در گیتهاب ثبت کنید تا تیم به سرعت پاسخ دهد.
لازم به ذکر است
همچنین به یاد داشته باشید که این یک ماشین مجازی است و به اندازه یک سرور کارآمد نخواهد بود. بهخصوص HHVM از محدود شدن منابع خوشش نمیآید و از CPU بهشدت استفاده میکند. بنابراین در برخی موارد، محدود کردن منابع ماشین شما میتواند عملکرد HHVM را ضعیف نشان دهد. تست بار برای بررسی پایداری کد شماست نه اندازهگیری عملکرد.
این بر پایه ایدههای ارزشمندی ساخته شده که پیش از آن وجود داشتهاند. جرمی فلت در این مورد مفصل توضیح میدهد که چگونه امید میرود VVV بر حسب نیاز، شاخههای جدیدی ایجاد کرده و گسترش یابد.
سلام وردپرس، با واگِرانت آشنا شو
واژه نامه آزمایشگاهی
واگرانت چیست؟ (چون شاید هنوز نمیدانید)
محیطهای توسعه سبک، قابل تکرار و قابل حمل بسازید و پیکربندی کنید. با اجرای یک دستورالعمل ساده، «vagrant up»، بنشینید و تماشا کنید که واگرانت محیط توسعه کامل شما را آماده میکند. با واگرانت که برای همه اعضای تیم شما محیطهای توسعه یکسانی ایجاد میکند، بهانهی «روی سیستم من کار میکند» را فراموش کنید.
وبسایت رسمی واگِرَنت
این فوقالعاده است چون صرف نظر از سیستم عامل (OSX، ویندوز، لینوکس)، اعضای تیم شما همفکر خواهند بود. یک توسعهدهندهی مستقل هم میتواند مطمئن شود که هنگام کار با تیمهای بزرگتر، همفکر آنهاست.
HHVM چیست؟
اچاچویام یک ماشین مجازی متنباز است که برای اجرای برنامههای نوشتهشده به زبانهای هک و پیاچپی طراحی شده است. اچاچویام با استفاده از روش کامپایل بلادرنگ (JIT)، به عملکردی برتر دست مییابد، در حالی که انعطافپذیری توسعهای که پیاچپی ارائه میدهد را حفظ میکند.
وبسایت هیپهوپ ورچوئل ماشین (ماشین مجازی هیپهوپ)
JIT چیست؟
در محاسبات، کامپایلکردن آنی (JIT) که به ترجمه پویا نیز معروف است، نوعی کامپایل است که در حین اجرای برنامه و نه پیش از آن انجام میشود.
یا مثالی دیگر:
PHP5 یک مفسر است. یعنی مانند ترجمه از ژاپنی به آلمانی عمل میکند. شما سند اصلی را میبینید و آن را به زبان جدید ترجمه میکنید و این کار را برای هر جمله تکرار میکنید. اما در برنامههای JIT، یک بلوک از متن ژاپنی گرفته میشود و به آلمانی ترجمه میشود و این ترجمه ذخیره میشود تا دفعه بعد که همین پاراگراف دیده شد، از نسخه آلمانی آن استفاده شود و مجبور نباشید خطوط را بارها و بارها ترجمه کنید.
گزینه دیگر، ترجمه پیش از موعد سند (پیشپردازش) است. JIT برای PHP بهتر است، زیرا شما از جزئیات چگونگی ارتباط پاراگرافها با هم پیش از اجرای برنامه آگاه نیستید (اسناد از بالا به پایین خوانده میشوند، اما برنامهها بسیار پرش دارند). اگر از JIT استفاده کنید، میتوانید از دانش نحوه پرشهای برنامه برای افزایش سرعت آن استفاده کنید.
همانندسازی فعال/فعال (چند مستر) چیست؟
کپیسازی چندمبدأ روشی برای کپیسازی پایگاه داده است که امکان ذخیره دادهها توسط گروهی از رایانهها و بهروزرسانی آنها توسط هر عضوی از گروه را میدهد. همه اعضا به پرسوجوهای دادههای مشتری پاسخ میدهند. سیستم کپیسازی چندمبدأ مسئول انتشار تغییرات دادهای ایجادشده توسط هر عضو به بقیه گروه و حل هرگونه تعارضی است که ممکن است بین تغییرات همزمان ایجادشده توسط اعضای مختلف به وجود آید.
بایت کد چیست؟
بایتکد، که با نام کد قابل حمل (p-code) نیز شناخته میشود، نوعی مجموعه دستورالعمل است که برای اجرای کارآمد توسط یک مفسر نرمافزاری طراحی شده است. بر خلاف کد منبع قابل خواندن توسط انسان، بایتکدها کدهای عددی فشرده، ثابتها و مراجع (معمولاً آدرسهای عددی) هستند که نتیجهی تجزیه و تحلیل معنایی مواردی مانند نوع، دامنه و عمق تو در تو اشیاء برنامه را رمزگذاری میکنند. بنابراین، آنها در مقایسه با تفسیر مستقیم کد منبع، عملکرد بسیار بهتری را ارائه میدهند.
FPM چیست؟
PHP-FPM (مدیریت فرآیند FastCGI) پیادهسازی جایگزین FastCGI برای PHP با برخی ویژگیهای اضافی مفید برای وبسایتهای کوچک و بزرگ، بهخصوص سایتهای پربازدید است.