راهنمای کامل ساخت پلاگین در DirectAdmin: ساختار پلاگین، اجرای PHP با php.ini اختصاصی، مدیریت GET/POST و استفاده از قالب‌های سفارشی

این مقاله یک راهنمای جامع برای توسعه پلاگین در DirectAdmin است. شامل ساختار پلاگین، نحوه اجرای PHP با php.ini اختصاصی، نحوه استفاده از GET و POST در پلاگین‌ها، نکات رفع اشکال، و استفاده از قالب اختیاری plugin_iframe.html برای کنترل کامل خروجی.

Writing Plugins in DirectAdminPHP Handling

~3 دقیقه مطالعه · آخرین به‌روزرسانی ۱۰ اسفند ۱۴۰۴

1. مقدمه‌ای بر سیستم پلاگین DirectAdmin


سیستم پلاگین DirectAdmin به توسعه‌دهندگان اجازه می‌دهد قابلیت‌های جدیدی را به کنترل‌پنل اضافه کنند. یک پلاگین در واقع مجموعه‌ای از فایل‌هاست که شامل اسکریپت‌ها، قالب‌ها و hookهایی است که در رابط کاربری DirectAdmin ادغام می‌شوند.

برای شروع، DirectAdmin یک نمونه پلاگین آماده ارائه می‌دهد:

  • hello_world.tar.gz — نمونه‌ای ساده برای آشنایی با ساختار پلاگین.

پلاگین‌ها می‌توانند:

  • لینک‌های جدید به منوهای DirectAdmin اضافه کنند
  • اسکریپت‌های سفارشی اجرا کنند
  • خروجی خام یا فایل ارسال کنند
  • هدر و فوتر پیش‌فرض DirectAdmin را حذف کنند
  • کنترل کامل روی headerها و socket داشته باشند
---

2. اجرای PHP با php.ini اختصاصی


اگر پلاگین شما نیاز به php.ini اختصاصی دارد، می‌توانید آن را در خط shebang مشخص کنید.

2.1 اجرای PHP با php.ini سفارشی


#!/usr/local/bin/php -nc /usr/local/directadmin/plugins/NAME/yourphp.ini

نکته مهم: گزینه -n باعث می‌شود PHP فایل php.ini اصلی سیستم را بارگذاری نکند و از بارگذاری دوباره ماژول‌ها جلوگیری می‌کند.

2.2 اجرای PHP بدون هیچ php.ini


#!/usr/local/bin/php -n

این حالت فقط از تنظیمات داخلی PHP استفاده می‌کند.

2.3 رفع اشکال shebang

اگر اسکریپت اجرا نشد، احتمالاً فایل در حالت DOS ذخیره شده است. تبدیل کنید:


yum install dos2unix
dos2unix index.html
---

3. استفاده از $_GET و $_POST در پلاگین‌ها


پلاگین‌های DirectAdmin با PHP CLI اجرا می‌شوند (/usr/local/bin/php) و به‌صورت پیش‌فرض آرایه‌های $_GET و $_POST را پر نمی‌کنند.

برای بازسازی این آرایه‌ها از متغیرهای محیطی DirectAdmin استفاده کنید:


// Build $_GET
$_GET = Array();
$QUERY_STRING = getenv('QUERY_STRING');
if ($QUERY_STRING != "") {
    parse_str(html_entity_decode($QUERY_STRING), $get_array);
    foreach ($get_array as $key => $value) {
        $_GET[urldecode($key)] = urldecode($value);
    }
}

// Build $_POST
$_POST = Array();
$POST_STRING = getenv('POST');
if ($POST_STRING != "") {
    parse_str(html_entity_decode($POST_STRING), $post_array);
    foreach ($post_array as $key => $value) {
        $_POST[urldecode($key)] = urldecode($value);
    }
}

با این روش، پلاگین شما مانند یک اسکریپت PHP معمولی رفتار خواهد کرد.

---

4. قالب اختیاری plugin_iframe.html


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

iframe=yes

DirectAdmin به‌صورت پیش‌فرض خروجی را داخل یک iframe قرار می‌دهد. برای کنترل کامل HTML iframe، می‌توانید قالب زیر را ایجاد کنید:

/usr/local/directadmin/data/templates/custom/plugin_iframe.html

نمونه قالب:




    
    


    
|OUTPUT|

این قالب برای دیباگ یا طراحی سفارشی بسیار کاربردی است.

---

5. جمع‌بندی


سیستم پلاگین DirectAdmin بسیار سبک، منعطف و قدرتمند است. با ترکیب موارد زیر:

  • اسکریپت‌های سفارشی
  • اجرای PHP با تنظیمات اختصاصی
  • بازسازی GET/POST
  • قالب‌های سفارشی مانند plugin_iframe.html

می‌توانید پلاگین‌هایی بسازید که کاملاً یکپارچه و حرفه‌ای در DirectAdmin عمل کنند.

نوشته و پژوهش‌شده توسط دکتر شاهین صیامی

مقالات مرتبط

راهنمای کامل پیکربندی کلاینت‌های ایمیل، هشدارهای quota در Dovecot و بررسی آخرین لاگین‌ها در DirectAdmin

این مقاله یک مرجع جامع برای کاربران و مدیران DirectAdmin است. در این راهنما یاد می‌گیرید چگونه ایمیل را روی iPhone، Thunderbird و Gmail تنظیم کنید، هشدارهای پر شدن quota را در Dovecot فعال کنید و با یک اسکریپت ساده، آخرین زمان لاگین تمام حساب‌های ایمیل را مشاهده کنید.

ادامه

عیب‌یابی Dovecot در DirectAdmin – رفع خطاهای IMAP، مشکلات احراز هویت و بررسی گواهی SSL

Dovecot سرویس اصلی IMAP/POP3 در DirectAdmin است. گاهی کاربران هنگام ورود به وب‌میل یا کلاینت ایمیل با خطاهایی مثل "Connection dropped" یا "unknown user" مواجه می‌شوند. این مقاله یک راهنمای کامل برای رفع خطاهای رایج Dovecot، پاک‌سازی ایندکس‌ها، بررسی دیتابیس‌های احراز هویت و تست گواهی SSL روی پورت‌های 143 و 993 است.

ادامه

عیب‌یابی DNS در DirectAdmin – وقتی named اجرا می‌شود اما دامنه resolve نمی‌شود

گاهی سرویس named (BIND) روی سرور اجرا می‌شود اما دامنه‌ها resolve نمی‌شوند یا از بیرون پاسخ DNS دریافت نمی‌شود. این مقاله یک راهنمای کامل برای بررسی listen، فایروال، تنظیمات named.conf، propagation، رکوردهای اشتباه، مشکلات ساب‌دامین، resolv.conf و خطاهای رایج DNS در DirectAdmin است.

ادامه

مدیریت رکوردهای DNS در DirectAdmin – راهنمای کامل، کاربردی و حرفه‌ای

DirectAdmin ابزارهای قدرتمندی برای مدیریت DNS ارائه می‌دهد: از کاهش TTL برای جلوگیری از downtime، تا ساخت رکوردهای SRV، فعال‌سازی DNSSEC، مدیریت delegation ساب‌دامین‌ها، افزودن خودکار TLSA برای DANE و حتی تغییرات گروهی (Mass Update) روی همه دامنه‌ها. این مقاله یک مرجع کامل برای مدیریت حرفه‌ای DNS در DirectAdmin است.

ادامه

DNS و Nameserverها در DirectAdmin – راهنمای کامل، کاربردی و حرفه‌ای

DNS ستون فقرات اینترنت است و وظیفه دارد نام دامنه را به IP تبدیل کند. در DirectAdmin می‌توان Nameserverهای اختصاصی ساخت، DNS را مدیریت کرد، DNS Clustering راه‌اندازی کرد و حتی از DNS خارجی استفاده نمود. این مقاله یک راهنمای جامع برای درک DNS، ساخت ns1/ns2، تنظیم Glue Record، رفع خطاها و مدیریت حرفه‌ای DNS در DirectAdmin است.

ادامه

CustomBuild در DirectAdmin – راهنمای کامل نصب، به‌روزرسانی، پیکربندی و سفارشی‌سازی پیشرفته

CustomBuild ابزار اصلی DirectAdmin برای مدیریت سرویس‌ها و نرم‌افزارهای سرور است. این ابزار وب‌سرور، PHP، دیتابیس، ایمیل، FTP و بسیاری از کامپوننت‌های دیگر را نصب، به‌روزرسانی و پیکربندی می‌کند. به دلیل کامپایل از سورس، CustomBuild انعطاف‌پذیری بسیار بالا، سرعت دسترسی به نسخه‌های جدید و مصرف منابع بهینه را فراهم می‌کند.

ادامه