طی سال‌های اخیر، از ابزار‌های manual و automatic مختلفی برای راه‌اندازی محیط توسعه وب‌سایت‌های وردپرسی استفاده کردم. این ابزار‌ها برای محیط‌های لوکال کاربرد دارن و توی پروداکشن کاربردی نیستند. درآینده درباره ابزار‌های پروداکشن و دیپلویمنت برای وردپرس بیشتر خواهم نوشت. در صورتی که هم‌اکنون از xampp یا دیگر old school‌ها استفاده می‌کنید، پس از مطالعه این نوشته دلایل زیادی برای استفاده از یک محیط آسان‌تر، سریع‌تر، دلچسب‌تر و مدرن‌تر خواهید داشت.

در این پست، ابزار‌های زیر بررسی شده اند:

زمپ – Xampp

پلتفرم‌ها: ویندوز، لینوکس، مک

یکی از معروف‌ترین محیط‌های توسعه لوکال برای PHP زمپ هست. این ابزار با نصب PHP, MariaDB, Perl, Apache یک محیط توسعه آماده به کار فراهم می‌کند. از مهم‌ترین معایب زمپ می‌شه به عدم امکان استفاده از Nginx،‌ عدم امکان نصب ورژن‌های مختلف PHP برای هر اپلیکیشن، پیچیدگی تغییرات کانفیگ به ازای هر اپلیکیشن، نداشتن xdebug به طور‌ پیش‌فرض، نداشتن SSL به طور پیش‌فرض، … اشاره کرد.

اگر همچنان از xampp استفاده می‌کنید، احتمالا پاسخی جز “این تنها چیزی است که من می‌شناسم” ندارید!

داکر – Docker

پلتفرم‌ها: ویندوز، لینوکس، مک

یکی از مدرن‌ترین انتخاب‌ها برای راه‌اندازی محیط توسعه لوکال وردپرس،‌ استفاده از بستر داکر هست. از مزایای این روش می‌شه به امکان راه‌اندازی کانفیگِ مشابه با سرور پروداکشن و ایزولیشن اشاره کرد. برخلاف تمام مزایا، از نظر من داکر برای این منظور بهترین انتخاب نیست! حدود یک‌سال علاوه بر محیط پروداکشن، در محیط لوکال هم از داکر استفاده کردم. نتیجه این تجربه، صرفا اتلاف وقت برای پیچیدگی زیاد بود. manual بودن راه‌حل ها باعث می‌شد تا راه‌اندازی و کانفیگ یک سایت وردپرسی جدید، حدود 30 زمان برای کار‌های تکراری تلف کند.

قبل از استفاده از داکر به عنوان محیط توسعه لوکال برای وردپرس از خودتون بپرسید: آیا ارزش پیچیدگی را دارد؟

DevKinsta

پلتفرم‌ها: ویندوز، اوبونتو، مک

DevKinsta نیز یک راه‌حل مدرن و جدید مخصوص توسعه سایت‌های وردپرسی بر بستر داکر هست. این ابزار با در اختیار قراردادن یک رابط کاربری حرفه‌ای،‌ روند توسعه را لذت‌بخش‌‌تر خواهد کرد. DevKinsta که محصول شرکت Kinsta هست،‌ با یک کلیک کانتینتر‌های از پیش کانفیگ شده ایجاد خواهد کرد. دریافت آسان ایمیل‌های لوکال، دیتابیس منیجر Adminer، HTTPS و پوش کردن آسان به Kinsta از ویژگی‌های این ابزار هستند.

تجربه من کند بودن محیط لوکال و دیر اجرا شدن DevKinsta بود که پس از استفاده یک ماهه مجبور به مهاجرت شدم.

localWP – انتخاب من

پلتفرم‌ها: ویندوز، اوبونتو، مک

localWP به طرز شگفت‌آوری تمام ویژگی‌های مد نظر شما برای یک محیط توسعه وردپرسی را داراست. سرعت خوب و بهینه بودن کانفیگ، از بهترین ویژگی‌های localWP هست.

  1. امکان انتخاب نسخه PHP، نسخه دیتابیس و وب‌سرور به ازای هر اپلیکیشن
  2. SSL
  3. کانفیگ خودکار virtual hosts
  4. دیتابیس منیجر Adminer
  5. استفاده از Mailhog
  6. ارسال لینک Live برای دسترسی دیگران به وبسایت لوکال شما
  7. xdebug
  8. ایجاد سایت جدید با یک کلیک
  9. ایجاد سایت جدید براساس یک blueprint
  10. ریلود خودکار (Instant Reload)
  11. WP-CLI
  12. رابط کاربری زیبا و قدرتمند (دارای دارک موووود)

من عاشقشم! هم‌اکنون از این ابزار برای توسعه پروژه‌های وردپرسی استفاده می‌کنم.

لاراگون – Laragon

پلتفرم: ویندوز

لاراگون یک ابزار توسعه لوکال قدرتمند است. امکان نصب نسخه‌های مختلف PHP و mysql و… هست و همچنین سوییچ کردن بین آن‌ها امکان‌پذیر هست. امکان Quick Install App یکی از جذاب‌ترین ویژگی‌های لاراگون هست. با استفاده از این ویژگی می‌توانید در یک دقیقه، بیسِ سایت وردپرسی یا پروژه لاراولی بعدی خودتون رو ایجاد کنید. لاراگون HTTPS رو فعال می‌کنه و virtual hosts رو به طور خودکار کانفیگ می‌کنه. فیچر Mail Catcher هم توسعه داده شده تا بتونید ایمیل‌های وب‌سایت رو بررسی و تست کنید. بین Apache و NginX حق انتخاب دارید و می‌تونید سوییچ کنید. با این اپ تقریبا همه چیز به طور خودکار کانفیگ می‌شه.

البته لاراگون محدود به وردپرس و لاراول نیست و یک محیط توسعه مناسب برای استک‌های زیر هست:

  • Node.js/MEAN
  • Ruby on Rails
  • Python/Django
  • Python/Flask
  • Java/Spring
  • Java/SpringBoot
  • Go

لاراگون دیتابیس‌های زیر رو پشتیبانی می‌کنه:

  • MySQL/MariaDB
  • MongoDB
  • Postgres

از نظر من لاراگون یکی از بهترین انتخاب‌ها برای محیط توسعه لوکال هست.

Vagrant

پلتفرم‌ها: ویندوز، اوبونتو، مک

واگرانت محصول شرکت HashiCorp، ابزاری برای مدیریت ماشین‌های مجازی برای راه‌اندازی محیط توسعه پروداکشن و لوکال است. از بهترین ستاپ‌ها برای واگرانت Trellis محصول شرکت roots می‌باشد. مهم‌ترین ویژگی این روش، یکسان بودن کانفیگ سرور دولوپ و پروداکشن، ایزولیشن، جداسازی لایه app و هسته وردپرس است.