یکپارچهسازی با کنترل پنل Enhance
نمای کلی
Enhance یک کنترل پنل مدرن است که قابلیتهای قدرتمندی برای اتوماسیون و مدیریت هاست ارائه میدهد. این یکپارچهسازی امکان همگامسازی خودکار دامنه و مدیریت گواهی SSL را بین Ultimate Multisite و کنترل پنل Enhance فراهم میکند.
بحث مرتبط: برای نکات انجمن و اطلاعات بیشتر، بحث #265 در GitHub را ببینید.
ویژگیها
- همگامسازی خودکار دامنه هنگام mapping دامنهها در Ultimate Multisite
- صدور خودکار گواهی SSL از طریق LetsEncrypt پس از resolve شدن DNS
- پشتیبانی از subdomain برای شبکههایی که در حالت subdomain اجرا میشوند
- حذف دامنه هنگام پاک شدن mappingها
- تست اتصال برای بررسی اعتبار API credentials
پیشنیازها
پیشنیازهای سیستم
- کنترل پنل Enhance نصب شده و قابل دسترسی
- نصب WordPress Multisite که روی سرور Enhance میزبانی شده یا به آن متصل است
- وبسرور Apache (Enhance در حال حاضر از تنظیمات Apache پشتیبانی میکند؛ LiteSpeed Enterprise با هزینه کمتر در دسترس است)
دسترسی API
برای ایجاد توکنهای API باید دسترسی مدیریتی به کنترل پنل Enhance داشته باشید.
دریافت اطلاعات API
۱. ایجاد توکن API
- به عنوان مدیر وارد کنترل پنل Enhance شوید
- روی Settings در منوی ناوبری کلیک کنید
- به Access Tokens بروید
- روی Create Token کلیک کنید
- یک نام توصیفی برای توکن بگذارید (مثلاً "Ultimate Multisite Integration")
- نقش System Administrator را اختصاص دهید
- برای تاریخ انقضا:
- خالی بگذارید اگر میخواهید توکن هرگز منقضی نشود
- یا یک تاریخ انقضای مشخص برای امنیت بیشتر تعیین کنید
- روی Create کلیک کنید
پس از ایجاد، Access Token و Organization ID شما نمایش داده میشود. فوراً اینها را ذخیره کنید چون توکن فقط یکبار نشان داده میشود.
۲. دریافت Organization ID
Organization ID در صفحه Access Tokens در یک کادر اطلاعاتی آبی با برچسب "Org ID: {your_id}" نمایش داده میشود.
Organization ID یک UUID با فرمت مشابه این است: d8554b6d-5d0d-6719-009b-fec1189aa8f3
همچنین میتوانید Organization ID یک مشتری را به این روش پیدا کنید:
- به صفحه Customers بروید
- روی Manage customer برای مشتری مورد نظر کلیک کنید
- به URL نگاه کنید - Organization ID همان کاراکترهای الفبایی-عددی بعد از
/customers/است
۳. دریافت Server ID
برای پیدا کردن Server ID (که برای عملیات دامنه لازم است):
- در کنترل پنل Enhance، به Servers بروید
- روی سروری که WordPress شما روی آن اجرا میشود کلیک کنید
- Server ID (با فرمت UUID) در URL یا جزئیات سرور قابل مشاهده است
- همچنین میتوانید از API برای لیست کردن سرو رها استفاده کنید:
curl -s -X GET https://your-enhance-panel.com/api/servers \
-H "Accept: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" | jq
Server ID از فرمت UUID پیروی میکند: 00000000-0000-0000-0000-000000000000
۴. دریافت URL API
URL API شما همان URL کنترل پنل Enhance است که /api/ به آن اضافه شده:
https://your-enhance-panel.com/api/
مهم: مسیر /api/ الزامی است. اشتباهات رایج شامل:
- استفاده از دامنه بدون
/api/ - استفاده از HTTP به جای HTTPS (HTTPS برای امنیت الزامی است)
پیکربندی
ثابتهای الزامی
ثابتهای زیر را به فایل wp-config.php خود اضافه کنید:
// یکپارچهسازی با کنترل پنل Enhance
define('WU_ENHANCE_API_TOKEN', 'your-bearer-token-here');
define('WU_ENHANCE_API_URL', 'https://your-enhance-panel.com/api/');
define('WU_ENHANCE_SERVER_ID', 'your-server-uuid-here');
راهاندازی از طریق ویزارد یکپارچهسازی
- در پنل مدیریت WordPress، به Ultimate Multisite > Settings بروید
- به تب Integrations بروید
- Enhance Control Panel Integration را پیدا کنید و روی Configuration کلیک کنید
- ویزارد شما را در مراحل راهاندازی راهنمایی میکند:
- مرحله ۱: معرفی و نمای کلی ویژگیها
- مرحله ۲: وارد کردن اطلاعات API (توکن، URL API، Server ID)
- مرحله ۳: تست اتصال
- مرحله ۴: بررسی و فعالسازی
میتوانید انتخاب کنید:
- اجازه دهید ویزارد ثابتها را بهصورت خودکار به فایل
wp-config.phpتزریق کند - تعریف ثابتها را کپی کرده و بهصورت دستی اضافه کنید
پیکربندیهای اضافی WordPress
بر اساس بازخورد انجمن (بحث #265)، ممکن است نیاز به پیکربندی این تنظیمات اضافی داشته باشید:
پیکربندی .htaccess
اگر با domain mapping مشکل دارید:
- فایل
.htaccessاصلی Enhance را حذف کنید - آن را با فایل
.htaccessاستاندارد WordPress Multisite جایگزین کنید
ثابتهای Cookie
این ثابتها را به wp-config.php اضافه کنی د تا مدیریت صحیح cookie در دامنههای map شده تضمین شود:
define('COOKIE_DOMAIN', $_SERVER['HTTP_HOST']);
define('COOKIEPATH', '/');
define('ADMIN_COOKIE_PATH', '/');
نحوه کار
وقتی یک دامنه Map میشود
- کاربر یک دامنه سفارشی را در Ultimate Multisite map میکند (یا یک سایت جدید در حالت subdomain ایجاد میشود)
- یکپارچهسازی یک درخواست POST به API Enhance ارسال میکند:
/servers/{server_id}/domains - Enhance دامنه را به پیکربندی سرور شما اضافه میکند
- وقتی DNS به سرور شما resolve میشود، Enhance بهصورت خودکار یک گواهی SSL از طری ق LetsEncrypt صادر میکند
- دامنه با HTTPS فعال میشود
وقتی یک دامنه حذف میشود
- یک domain mapping در Ultimate Multisite حذف میشود
- یکپارچهسازی از Enhance برای پیدا کردن ID دامنه پرسوجو میکند
- یک درخواست DELETE به این آدرس ارسال میشود:
/servers/{server_id}/domains/{domain_id} - Enhance دامنه را از پیکربندی سرور شما حذف میکند
بررسی DNS و SSL
Ultimate Multisite شامل بررسی داخلی DNS و SSL است:
- میتوانید فاصله بررسی را در Domain Mapping Settings پیکربندی کنید (پیشفرض: ۳۰۰ ثانیه/۵ دقیقه)
- سیستم انتشار DNS را قبل از فعال علامتگذاری کردن دامنه بررسی میکند
- اعتبار گواهی SSL بهصورت خودکار بررسی میشود
- Enhance صدور SSL را بهصورت خودکار انجام میدهد، بنابراین پیکربندی دستی SSL نیاز نیست
تأیید راهاندازی
تست اتصال
- در ویزارد یکپارچهسازی، از مرحله Test Connection استفاده کنید
- افزونه سعی میکند دامنههای روی سرور شما را لیست کند
- یک پیام موفقیت تأیید میکند که:
- اطلاعات API صحیح است
- URL API قابل دسترسی است
- Server ID معتبر است
- مجوزها بهدرستی تنظیم شدهاند
پس از Map کردن یک دامنه
- یک دامنه تست در Ultimate Multisite map کنید
- لاگهای Ultimate Multisite را بررسی کنید (Ultimate Multisite > Logs > integration-enhance)
- در کنترل پنل Enhance بررسی کنید که دامنه اضافه شده است:
- به Servers > Your Server > Domains بروید
- دامنه جدید باید در لیست ظاهر شود
- پس از انتشار DNS، بررسی کنید که SSL بهصورت خودکار صادر شده است
عیبیابی
مشکلات اتصال API
خطا: "Failed to connect to Enhance API"
- بررسی کنید که
WU_ENHANCE_API_URLشامل/api/در انتها باشد - مطمئن شوید که از HTTPS استفاده میکنید، نه HTTP
- بررسی کنید که پنل Enhance از سرور WordPress شما قابل دسترسی باشد
- مطمئن شوید که قوانین فایروال اتصال را مسدود نکردهاند
خطا: "Enhance API Token not found"
- مطمئن شوید که
WU_ENHANCE_API_TOKENدرwp-config.phpتعریف شده است - بررسی کنید که توکن در Enhance حذف یا منقضی نشده باشد
- غلطهای تایپی در مقدار توکن را بررسی کنید
خطا: "Server ID is not configured"
- بررسی کنید که
WU_ENHANCE_SERVER_IDدرwp-config.phpتعریف شده است - مطمئن شوید که Server ID با فرمت UUID معتبر باشد
- تأیید کنید که سرور در پنل Enhance شما وجود دارد
دامنه اضافه نشده
لاگها را بررسی کنید:
- به Ultimate Multisite > Logs بروید
- بر اساس integration-enhance فیلتر کنید
- به دنبال پیامهای خطا که مشکل را نشان میدهند بگردید
دلایل رایج:
- فرمت نام دامنه نامعتبر
- دامنه از قبل در Enhance وجود دارد
- مجوزهای API ناکافی (مطمئن شوید توکن نقش System Administrator دارد)
- Server ID با سرور واقعی در Enhance مطابقت ندارد
مشکلات گواهی SSL
SSL صادر نمیشود:
- بررسی کنید که DNS به آدرس IP سرور شما اشاره میکند
- بررسی کنید که دامنه بهدرستی resolve میشود:
nslookup yourdomain.com - Enhance نیاز دارد که DNS قبل از صدور SSL resolve شود
- صدور SSL معمولاً ۵ تا ۱۰ دقیقه پس از انتشار DNS طول میکشد
- لاگهای کنترل پنل Enhance را برای خطاهای مربوط به SSL بررسی کنید
عیبیابی دستی SSL در Enhance:
- به Servers > Your Server > Domains بروید
- دامنه خود را پیدا کنید و وضعیت SSL آن را بررسی کنید
- در صورت نیاز میتوانید صدور SSL را بهصورت دستی فعال کنید
فاصله بررسی DNS
اگر فعالسازی دامنهها یا گواهیهای SSL بیش از حد طول میکشد:
- به Ultimate Multisite > Settings > Domain Mapping بروید
- تنظیم DNS Check Interval را پیدا کنید
- از مقدار پیشفرض ۳۰۰ ثانیه به مقدار کمتر تغییر دهید (حداقل: ۱۰ ثانیه)
- توجه: فواصل کمتر یعنی بررسیهای مکررتر اما بار سرور بیشتر
خطاهای احراز هویت
خطاهای HTTP 401/403:
- توکن API خود را در Enhance مجدداً ایجاد کنید
- بررسی کنید که توکن نقش System Administrator داشته باشد
- بررسی کنید که توکن منقضی نشده باشد
- مطمئن شوید که از Organization ID صحیح استفاده میکنید (گرچه معمولاً در URL نیاز نیست)
تحلیل لاگ
ثبت جزئیات بیشتر را فعال کنید:
// به wp-config.php برای دیباگ بهتر اضافه کنید
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
سپس لاگها را در این مکانها بررسی کنید:
- لاگهای Ultimate Multisite: Ultimate Multisite > Logs
- لاگ دیباگ WordPress:
wp-content/debug.log - لاگهای پنل Enhance: در رابط مدیریت Enhance در دسترس است
مرجع API
احراز هویت
تمام درخواستهای API از احراز هویت Bearer token استفاده میکنند:
Authorization: Bearer YOUR_TOKEN_HERE
Endpointهای پرکاربرد
لیست سرورها:
GET /servers
لیست دامنههای روی یک سرور:
GET /servers/{server_id}/domains
افزودن یک دامنه:
POST /servers/{server_id}/domains
Body: {"domain": "example.com"}
حذف یک دامنه:
DELETE /servers/{server_id}/domains/{domain_id}
مستندات کامل API
مستندات کامل API: https://apidocs.enhance.com
بهترین روشها
امنیت
- هرگز توکنهای API را در version control کامیت نکنید
- توکنها را در
wp-config.phpذخیره کنید که باید از Git مستثنی شود - از توکنها با مجوزهای مناسب استفاده کنید (System Administrator برای یکپارچهسازی کامل)
- برای محیطهای production تاریخ انقضا تنظیم کنید
- توکنها را بهصورت دورهای تغییر دهید
کارایی
- از فاصله بررسی DNS پیشفرض (۳۰۰ ثانیه) استفاده کنید تا از تماسهای بیش از حد API جلوگیری شود
- منابع سرور Enhance را هنگام اجرای عملیات دامنه در مقیاس بزرگ نظارت کنید
- اگر دامنههای زیادی را همزمان map میکنید، افزودن دامنهها را پراکنده کنید
نظارت
- بهطور منظم لاگهای Ultimate Multisite را برای خطاهای یکپارچهسازی بررسی کنید
- نظارت بر افزودنهای ناموفق دامنه را راهاندازی کنید
- بررسی کنید که گواهیهای SSL بهدرستی صادر میشوند
- ظرفیت سرور Enhance و محدودیتهای دامنه را زیر نظر داشته باشید
منابع اضافی
- مستندات رسمی Enhance: https://enhance.com/docs
- مستندات API Enhance: https://apidocs.enhance.com
- انجمن Enhance: https://community.enhance.com
- بحث GitHub: Issue #265 - نکات یکپارچهسازی Enhance
- راهنمای Domain Mapping Ultimate Multisite: صفحه ویکی "How to Configure Domain Mapping v2" را ببینید
پشتیبانی
اگر با مشکلی مواجه شدید:
- بخش عیبیابی بالا را بررسی کنید
- لاگهای Ultimate Multisite را مرور کنید
- با بحثهای GitHub مشورت کنید
- برای مشکلات مربوط به پنل، با پشتیبانی Enhance تماس بگیرید
- یک بحث جدید با لاگهای خطای دقیق برای کمک انجمن ایجاد کنید