آموزش نصب WHMCS و فارسیسازی ناحیه کاربری، بخش مدیریت و ایمیلها
نصب خودِ WHMCS بیشتر از چند دقیقه طول نمیکشد؛ چیزی که کار را طولانی میکند بعد از نصب است: فاکتورها سرِ موعد صادر نمیشوند، ایمیل تأیید سفارش انگلیسی به دست مشتری ایرانی میرسد، پوشه install هنوز روی سرور مانده و سطح دسترسی configuration.php همان ۷۷۷ زمان نصب است. مسیر زیر همان ترتیبی است که این کار واقعاً انجام میشود: آمادهسازی سرور، نصب، تنظیمات اولیه و در آخر فارسیسازی هر سه بخش ناحیه کاربری، مدیریت و قالب ایمیلها.
یک هشدار را از ابتدا بدانید: بیشتر آموزشها و بستههای فارسیساز موجود در اینترنت برای WHMCS نسخه ۵ نوشته شدهاند، یعنی بیش از یک دهه پیش. مسیر منوها، نام پوشهها و حتی روش اجرای کرون از آن زمان تا امروز عوض شده و اجرای عین آن دستورالعملها روی نسخه فعلی یا بیاثر است یا نصب را خراب میکند. هرجا در ادامه روش قدیمی را میبینید، شکل امروزیاش هم کنارش آمده است.
پیش از نصب WHMCS چه چیزهایی باید آماده باشد
لایسنس معتبر — و اینکه چرا نسخه نالشده گزینه نیست
WHMCS نرمافزار تجاری است و بدون لایسنس معتبر کار نمیکند. نسخههای نالشده و قالبهای «کرکشده» که لینکهای لایسنس از داخلشان حذف شده، دقیقاً همان چیزی هستند که نباید روی سرور صورتحساب اجرا شوند: کدشان دستکاری شده، رمزگذاریشده است و شما راهی برای دیدن باقی تغییرات ندارید، و مسیر بهروزرسانی رسمی — که تنها راه دریافت اصلاحیههای امنیتی است — برایتان بسته میشود.
این موضوع درباره WHMCS جدیتر از بقیه نرمافزارهاست، چون در دیتابیس آن مشخصات هویتی مشتریان، تاریخچه فاکتورها و اعتبارنامه اتصال به سرورهای شما ذخیره میشود. جزئیات سختسازی را در پچ امنیتی برای WHMCS آوردهایم.
نسخه PHP، دیتابیس و اکستنشنها
هر نسخه WHMCS بازه مشخصی از PHP و MySQL/MariaDB را پشتیبانی میکند و این بازه با هر انتشار جابهجا میشود. پیش از نصب، صفحه System Requirements را در مستندات رسمی (docs.whmcs.com) ببینید و نسخه PHP دامنه را با آن هماهنگ کنید. لینک قدیمی wiki.whmcs.com که در آموزشهای چند سال پیش میبینید دیگر فعال نیست و مستندات به دامنه docs منتقل شدهاند.
اکستنشنهایی که تقریباً همیشه لازم میشوند: curl، gd، json، mbstring، openssl، pdo_mysql، xml/simplexml، zip و iconv. فهرست کامل و دقیقِ همان نسخهای که دانلود کردهاید در مستندات آمده است؛ به آن فهرست تکیه کنید، نه به این خلاصه.
اگر هنوز روی CentOS 6 یا CentOS 7 هستید، این نصب را روی همان سرور شروع نکنید. هر دو به پایان پشتیبانی رسیدهاند و رساندن PHP به نسخههای امروزی روی آنها فقط از راه مخزنهای جانبی (مثل Remi) یا EasyApache 4 ممکن است، در حالی که خود سیستمعامل دیگر وصله امنیتی نمیگیرد. جایگزینهای امروزی AlmaLinux و Rocky Linux هستند که مدیریت بستههایشان با dnf انجام میشود (دستور yum روی آنها فقط یک نام مستعار برای dnf است).
بررسی ionCube Loader
فایلهای WHMCS با ionCube رمزگذاری شدهاند و بدون لودر ionCube، نصبکننده حتی باز نمیشود. روی بیشتر سرورهای هاستینگ این لودر از قبل نصب است. برای اطمینان:
php -v php -m | grep -i ioncube
در خروجی php -v باید عبارتی شبیه «with the ionCube PHP Loader» دیده شود و در php -m نام لودر زیر بخش [Zend Modules] بیاید.
یک نکته که خیلیها را به اشتباه میاندازد: این دو دستور نسخه PHP خط فرمان را گزارش میکنند، نه نسخهای که دامنه شما روی وب استفاده میکند. این دو تقریباً همیشه با هم فرق دارند. برای بررسی PHP دامنه یا یک فایل phpinfo() موقت در همان دایرکتوری بسازید (و بعد فوراً پاکش کنید)، یا روی cPanel باینری همان نسخه را مستقیم صدا بزنید:
/opt/cpanel/ea-php82/root/usr/bin/php -m | grep -i ioncube
لودر باید با همان نسخه PHP که دامنه استفاده میکند مطابقت داشته باشد؛ لودری که برای PHP 7 نصب شده روی PHP 8 بارگذاری نمیشود. روی سرورهای cPanel لودر بهصورت بسته آماده در EasyApache 4 موجود است و برای هر نسخه PHP جداگانه نصب میشود؛ در این حالت خود EasyApache سرویسها را بازنشانی میکند و لازم نیست دستی کاری بکنید.
فقط اگر لودر را دستی و خارج از EasyApache نصب کردهاید باید سرویس را ریاستارت کنید. حواستان باشد که ریاستارت وبسرور روی یک سرور اشتراکی، تمام سایتهای آن سرور را چند ثانیه از دسترس خارج میکند؛ این کار را در ساعت کمترافیک انجام دهید. نام سرویس بسته به سیستم فرق میکند:
# سرور معمولی مبتنی بر RHEL systemctl restart httpd # دبیان/اوبونتو systemctl restart apache2 # PHP-FPM — نام یونیت را اول ببینید systemctl list-units --type=service | grep -i php # روی cPanel از ابزار خود کنترلپنل استفاده کنید، نه systemctl /scripts/restartsrv_httpd /scripts/restartsrv_apache_php_fpm
دستورهای service httpd restart و /etc/init.d/httpd restart که در آموزشهای قدیمی میبینید منسوخاند؛ روی توزیعهای امروزی از systemctl استفاده کنید. یک systemctl restart php-fpm خالی هم روی cPanel اصلاً یونیتی به آن نام پیدا نمیکند، چون سرویسها به شکل ea-php82-php-fpm نامگذاری شدهاند.
دانلود نسخه درست از ناحیه کاربری
فایل نصب را فقط از سایت رسمی بگیرید. به whmcs.com/members وارد شوید و:
- روی My Licenses & Services کلیک کنید
- یکی از لایسنسهای فعال خود را برای دیدن جزئیات انتخاب کنید
- آخرین نسخه پایدار منتشرشده را از فهرست پایین صفحه دانلود کنید
فایلی که از سایتهای دانلود ایرانی یا انجمنها میگیرید، حتی اگر «سالم» تبلیغ شده باشد، قابل راستیآزمایی نیست؛ کد رمزگذاریشده است و نمیتوانید ببینید داخلش چه اضافه شده.
نصب WHMCS مرحله به مرحله
ابتدا در cPanel (بخش MySQL Databases) یک دیتابیس و یک کاربر بسازید و همه دسترسیها را به آن کاربر بدهید؛ نصبکننده در همان ابتدا این اطلاعات را میخواهد. سپس:
- فایل زیپ را روی کامپیوتر خود از حالت فشرده خارج کنید
- نام فایل
configuration.php.newرا بهconfiguration.phpتغییر دهید - محتویات پوشه
whmcsرا در مسیر مقصد آپلود کنید - میتوانید نام پوشه مقصد را هرچه میخواهید بگذارید، مثلاً
billingیاclients. این کار علاوه بر زیبایی آدرس، یک لایه کوچک امنیتی هم اضافه میکند. مسیر انتخابیتان را یادداشت کنید؛ در تنظیم کرون دوباره لازمش دارید - پیش از اجرای نصبکننده SSL دامنه را فعال کنید؛ کلید لایسنس و رمز ادمین نباید روی
httpرد و بدل شوند
سطح دسترسی فایلها و پوشهها
اینجا مهمترین اصلاح نسبت به آموزشهای قدیمی است. آن آموزشها میگویند configuration.php و پوشههای attachments، downloads و templates_c را روی ۷۷۷ بگذارید. روی سرورهای امروزی این کار هم غیرلازم است و هم خطرناک؛ ۷۷۷ یعنی هر کاربر دیگری روی همان سرور میتواند در فایلهای شما بنویسد.
امروز روی cPanel و DirectAdmin و LiteSpeed، PHP با کاربر صاحب فایل اجرا میشود (suPHP، suEXEC یا PHP-FPM اختصاصی). در این حالت ۷۵۵ برای پوشهها و ۶۴۴ برای فایلها کافی است. دستورها را از داخل همان پوشهای که WHMCS را در آن آپلود کردهاید اجرا کنید:
cd /home/username/public_html/billing chmod 644 configuration.php chmod 755 attachments downloads templates_c
فقط اگر PHP روی سرور شما با کاربر دیگری مثل nobody یا apache اجرا میشود ممکن است به دسترسی بازتر نیاز پیدا کنید؛ در آن صورت هم راهحل درست اصلاح مالکیت فایلها است، نه ۷۷۷ گذاشتن.
اجرای نصبکننده
نصبکننده را با این آدرس باز کنید (بهجای whmcs نام پوشهای را بگذارید که خودتان انتخاب کردهاید):
https://yourdomain.com/whmcs/install/install.php
اگر خطای مربوط به ionCube گرفتید، یعنی لودر نصب نیست یا با نسخه PHP دامنه همخوان نیست. در ادامه کلید لایسنس را وارد و حساب ادمین را تکمیل کنید.
کارهایی که بلافاصله پس از پایان نصب باید انجام دهید
- پوشه
installرا حذف (یا دستکم تغییر نام) دهید. برای اطمینان آدرس/install/را باز کنید؛ باید خطای ۴۰۴ بدهد - سطح دسترسی
configuration.phpرا کم کنید. توصیه فعلی WHMCS مقدار ۴۰۰ است؛ اگر با این مقدار سایت بالا نیامد، ۶۴۴ بگذارید. به هیچ وجه آن را روی ۷۷۷ رها نکنید. یادتان باشد که هنگام بهروزرسانی WHMCS باید موقتاً این فایل را قابل نوشتن کنید و بعد دوباره به ۴۰۰ برگردانید - نام پوشه
adminرا عوض کنید و نام جدید را درconfiguration.phpاعلام کنید - ورود دومرحلهای را برای همه حسابهای مدیریت فعال کنید
$customadminpath = 'myadmin';
ترتیب این کار مهم است و اشتباه در آن شما را از پنل مدیریت بیرون میاندازد. اول پوشه را تغییر نام دهید، بعد بلافاصله همین خط را با همان نام جدید (بدون اسلش ابتدا و انتها) در configuration.php بگذارید. تا وقتی مطمئن نشدهاید که ورود با آدرس جدید کار میکند، پنجره File Manager یا نشست SSH خود را باز نگه دارید تا اگر نام را اشتباه نوشتید بتوانید برش گردانید.
پوشههای نوشتنی و پوشه کرون را هم بهتر است از دایرکتوری وب بیرون ببرید و مسیر جدید را در configuration.php معرفی کنید. پوشهها را واقعاً منتقل کنید (نه کپی)، مالکیتشان را همان کاربر PHP نگه دارید و در انتهای مسیرها اسلش نگذارید:
$templates_compiledir = '/home/username/whmcs_data/templates_c'; $attachments_dir = '/home/username/whmcs_data/attachments'; $downloads_dir = '/home/username/whmcs_data/downloads'; $crons_dir = '/home/username/whmcs_data/crons';
اگر میخواهید ورود به بخش مدیریت را هم به IPهای مشخص محدود کنید، با یک فایل .htaccess داخل پوشه مدیریت انجام میشود. توجه کنید که نحو Apache 2.4 با ۲.۲ فرق دارد:
# Apache 2.4 — روش فعلی Require ip 203.0.113.10 # Apache 2.2 — منسوخ، فقط روی سرورهای قدیمی Order deny,allow Deny from all Allow from 203.0.113.10
پیش از فعالکردن این محدودیت سه چیز را در نظر بگیرید، وگرنه خودتان را از پنل مدیریت قفل بیرون میکنید: اول اینکه IP شما باید ثابت باشد — با اینترنت خانگی و IP داینامیک، فردا صبح دیگر راه ندارید. دوم، اگر سایت پشت Cloudflare یا هر پراکسی دیگری است، Apache آیپی پراکسی را میبیند نه آیپی شما، و این قانون همه را مسدود میکند. سوم، همیشه یک راه دسترسی جایگزین به فایلها (File Manager کنترلپنل یا SSH) داشته باشید تا بتوانید فایل .htaccess را پاک کنید. اول با یک مرورگر دیگر تست کنید که هنوز میتوانید وارد شوید، بعد فایل را نهایی کنید.
تنظیمات اولیه پس از نصب
در WHMCS نسخه ۷ و قبلتر همه این تنظیمات زیر منوی Setup بودند. از نسخه ۸ به بعد این منو به آیکن چرخدنده منتقل شده و مسیرها به شکل Configuration > System Settings درآمدهاند. هر دو مسیر را در ادامه آوردهام:
- General Settings — نام شرکت، دامنه، ارز و تنظیمات پایه (Setup > General Settings)
- Payment Gateways — درگاههای پرداخت. درگاههای ایرانی معمولاً بهصورت ماژول ارائه میشوند: فایل ماژول را در
modules/gatewaysقرار میدهید و بعد از همین صفحه فعالش میکنید - Products/Services — تعریف محصولات و سرویسها. (در آموزشهای قدیمی این مورد اشتباهاً زیر Support Departments معرفی شده بود)
- Domain Pricing — قیمتگذاری پسوندهای دامنه. برای ثبت خودکار دامنه، ابتدا باید ماژول ریجسترار مربوطه را در بخش Domain Registrars فعال کرده باشید
- Support Departments — دپارتمانهای پشتیبانی
- Mail — تنظیم ارسال ایمیل. توصیه میشود بهجای تابع mail خود PHP از SMTP با احراز هویت استفاده کنید و رکوردهای SPF و DKIM دامنه را هم درست کنید، وگرنه ایمیلهای شما در پوشه اسپم مشتری مینشیند
- Automation Settings — تنظیمات خودکارسازی و وضعیت کرون
کرون: تنظیمی که بیشتر از همه فراموش میشود
اگر کرون درست تنظیم نشود، هیچ فاکتوری خودکار صادر نمیشود، هیچ یادآوریای نمیرود و سرویسهای معوق تعلیق نمیشوند. اینجا هم روش عوض شده است.
در نسخههای قدیمی، فایل cron.php در ریشه WHMCS بود و روزی یک بار اجرا میشد. از WHMCS نسخه ۷ به بعد فایل به پوشه crons منتقل شده و باید هر پنج دقیقه اجرا شود. مسیر را دقیقاً مطابق محل نصب خودتان بنویسید — این پوشه داخل همان دایرکتوریای است که WHMCS را در آن آپلود کردهاید:
*/5 * * * * php -q /home/username/public_html/billing/crons/cron.php
اگر پوشه crons را طبق بخش قبل بیرون از دایرکتوری وب بردهاید، همان مسیر جدید را در دستور کرون بگذارید:
*/5 * * * * php -q /home/username/whmcs_data/crons/cron.php
دو نکته درباره خود دستور: سوئیچ -q فقط خروجی هدرها را خاموش میکند و بیخطر است. مهمتر اینکه php خالی، نسخه پیشفرض خط فرمان سرور را اجرا میکند که ممکن است قدیمیتر از نسخه دامنه شما باشد؛ اگر کرون با خطای نسخه یا نبود اکستنشن شکست خورد، مسیر کامل باینری درست را بگذارید، مثلاً /opt/cpanel/ea-php82/root/usr/bin/php.
بعد از تنظیم، صفحه Automation Settings اگر کرون بهموقع اجرا نشده باشد هشدار نشان میدهد، و گزارش کامل آخرین اجراها در Utilities > Automation Status دیده میشود. برای تست دستی هم میتوانید یک بار همان دستور را در SSH اجرا کنید و خروجیاش را ببینید.
فارسیسازی WHMCS
فارسیسازی یک کار واحد نیست؛ سه بخش کاملاً جدا دارد که هرکدام فایل و روش خودش را دارد: ناحیه کاربری، بخش مدیریت و قالب ایمیلهای ارسالی. WHMCS بهصورت پیشفرض زبان فارسی را همراه خود ندارد و هر سه بخش را باید دستی اضافه کنید.
یک قاعده کلی که جلوی دوبارهکاری را میگیرد: هیچوقت فایلهای اصلی زبان و قالب را ویرایش نکنید. اولین بهروزرسانی، آنها را بازنویسی میکند و همه زحمتتان از بین میرود. برای متنها از پوشه overrides و برای ظاهر از قالب فرزند (یک کپی از قالب استاندارد با نام جدید) استفاده کنید.
نکته دیگر درباره بستههای فارسیساز قدیمی: این فایلها برای نسخه ۵ نوشته شدهاند و روی نسخه فعلی کلیدهای زبانی زیادی کم دارند، بهعلاوه بعضیشان فایل PHP کمکی دارند که از توابع حذفشده در PHP 8 مثل create_function() و each() یا توابع قدیمی mysql_* استفاده میکنند و روی سرور امروزی خطای Fatal میدهند.
۱. فارسیسازی ناحیه کاربری
فایلهای زبان ناحیه کاربری در پوشه lang/ در ریشه WHMCS قرار دارند و نام فایل، نام زبان را تعیین میکند. فایل زبان فارسی را در همین پوشه بگذارید و سپس زبان پیشفرض را انتخاب کنید:
Setup > General Settings > Localisation > Default Language (در نسخه 8: Configuration > System Settings > General Settings > تب Localisation)
وقتی بیش از یک فایل زبان در پوشه lang باشد، معمولاً انتخابگر زبان هم بهصورت خودکار در ناحیه کاربری ظاهر میشود.
برای تغییر یا اصلاح تکتک عبارتها، سراغ فایل اصلی نروید؛ در پوشه lang/overrides/ فایلی دقیقاً همنام فایل زبان خودتان بسازید (اگر فایل زبان lang/farsi.php است، فایل override هم باید lang/overrides/farsi.php باشد) و فقط همان عبارتهایی را که میخواهید عوض شود داخلش بگذارید. کلید دقیق هر عبارت را از lang/english.php بردارید:
<?php // فقط عبارتهایی که میخواهید تغییر کنند $_LANG['clientareahome'] = 'صفحه اصلی';
یک نکته که خیلیها را غافلگیر میکند: فایل زبان فقط متن را فارسی میکند و چیدمان را راستچین نمیکند. برای راستچینکردن باید CSS اختصاصی و فونت فارسی را به قالب فرزند خودتان اضافه کنید، نه به قالب پیشفرض.
۲. فارسیسازی بخش مدیریت
این بخش برای شرکتهایی مهم است که اپراتور و کارمند پشتیبانیشان به انگلیسی مسلط نیستند و آموزش کار با پنل برایشان وقتگیر است. فایلهای زبان بخش مدیریت در admin/lang/ قرار میگیرند. زبان در WHMCS برای هر مدیر جداگانه تعیین میشود:
Setup > Staff Management > Administrators > ویرایش کاربر > Language (در نسخه 8: Configuration > System Settings > Administrator Users)
در نسخههای جدید برای بخش مدیریت هم مسیر admin/lang/overrides/ در نظر گرفته شده است؛ اگر این پوشه در نصب شما وجود دارد، تغییرات را همانجا بگذارید تا بهروزرسانی پاکشان نکند.
اما قالب اختصاصی بخش مدیریت را نصب نکنید. بستههای فارسیساز قدیمی معمولاً همراه خودشان یک قالب نالشده برای admin/templates میآورند که لینکهای لایسنس از داخلش حذف شده است. این دقیقاً همان چیزی است که نباید روی پنلی که به سرورهای شما دسترسی دارد اجرا شود. قالب پیشفرض بخش مدیریت را نگه دارید و فقط فایل زبان را اضافه کنید.
انتظار ترجمه صددرصدی هم نداشته باشید؛ بخشی از رشتههای بخش مدیریت و تقریباً همه خروجی ماژولهای جانبی انگلیسی باقی میمانند.
۳. فارسیسازی ایمیلهای ارسالی
روش قدیمی که در آموزشهای سالهای گذشته تکرار شده این بود: وارد phpMyAdmin شوید، جدول tblemailtemplates را DROP کنید و یک فایل SQL آماده را import کنید. این کار را انجام ندهید. دلیلش:
- ساختار این جدول بین نسخههای WHMCS تغییر کرده؛ ریختن یک دامپ مربوط به نسخه ۵ روی نسخه فعلی میتواند ارسال ایمیل را کاملاً از کار بیندازد
- قالبهایی که نسخههای جدیدتر اضافه کردهاند و قالبهایی که ماژولهای نصبشده ساختهاند همگی پاک میشوند
- هر ویرایشی که خودتان روی متن ایمیلها انجام داده بودید از بین میرود
روش درست، ویرایش از خود پنل است:
Setup > Email Templates (در نسخه 8: Configuration > System Settings > Email Templates)
هر قالب را باز کنید و متنش را فارسی بنویسید. تنها چیزی که باید دستنخورده بماند merge fieldها هستند — عبارتهایی مثل {$client_name} که هنگام ارسال با مقدار واقعی جایگزین میشوند؛ اگر اینها را ترجمه کنید، ایمیل با متغیر خالی ارسال میشود.
مزیت روش پنل این است که WHMCS برای هر قالب میتواند نسخه ترجمهشده جداگانه به ازای هر زبان فعال نگه دارد، و ایمیل به زبان انتخابی خود مشتری فرستاده میشود. پس اول زبان فارسی را فعال کنید، بعد نسخه فارسی هر قالب را اضافه کنید.
لازم نیست همه قالبها را یکجا فارسی کنید. از پرکاربردترینها شروع کنید: صدور فاکتور، تأیید پرداخت، ثبت سفارش، اطلاعات اکانت جدید و پیامهای تیکت پشتیبانی. پیش از هر کاری هم یک بکاپ کامل از دیتابیس بگیرید.
فاکتورهای PDF جدا حساب میشوند
فارسیکردن فایلهای زبان هیچ تأثیری روی فاکتورهای PDF ندارد. خروجی PDF فونت و قالب مستقل خودش را دارد و اگر فونت مناسب معرفی نشود، حروف فارسی بهصورت مربع خالی یا جدا از هم چاپ میشوند. مراحلش را در آموزش فارسیسازی PDF در WHMCS جداگانه توضیح دادهایم.
تست نهایی پیش از تحویل به مشتری
- چند سفارش آزمایشی ثبت کنید و کل چرخه را تا صدور فاکتور و ساخت اکانت دنبال کنید
- درگاه پرداخت را در حالت تست بررسی کنید
- مطمئن شوید ایمیلها واقعاً تحویل داده میشوند، نه اینکه فقط در لاگ «ارسال شده» ثبت شده باشند
- آدرس
/install/را باز کنید و از خطای ۴۰۴ مطمئن شوید - در Utilities > Automation Status تأیید کنید که کرون در پنج دقیقه گذشته اجرا شده است
- یک بار از یک مرورگر دیگر یا حالت ناشناس، ورود به پوشه جدید مدیریت را تست کنید
خطاهای رایج و علتهایشان
- خطای ionCube هنگام باز کردن install.php: لودر نصب نیست یا با نسخه PHP دامنه همخوان نیست
- صفحه سفید یا خطای ۵۰۰: معمولاً نسخه PHP خارج از بازه پشتیبانیشده یا نبود یکی از اکستنشنهای لازم است. لاگ خطای PHP را ببینید
- پیام نامعتبر بودن لایسنس بعد از انتقال: با تغییر دامنه، مسیر یا IP سرور باید لایسنس را از ناحیه کاربری whmcs.com دوباره صادر (Reissue) کنید
- هیچ ایمیلی ارسال نمیشود: تنظیمات SMTP و رکوردهای SPF و DKIM را بررسی کنید
- فاکتورها خودکار صادر نمیشوند: کرون اجرا نمیشود؛ مسیر کامل
crons/cron.php، باینری PHP و بازه پنجدقیقهای را کنترل کنید - بعد از تغییر نام پوشه admin آدرس مدیریت باز نمیشود: مقدار
$customadminpathبا نام واقعی پوشه یکی نیست؛ از File Manager اصلاحش کنید - متن فارسی راستچین نیست: فایل زبان کارش را کرده؛ راستچینی نیاز به CSS در قالب فرزند دارد
اگر این ترتیب را رعایت کنید — نصب تمیز از فایل رسمی، بستن پوشه install و سطح دسترسیها، کرون پنجدقیقهای با مسیر درست، و فارسیسازی از راه overrides و قالب فرزند — نه بهروزرسانی بعدی کارتان را پاک میکند و نه مجبور میشوید هر بار همه چیز را از اول انجام دهید.
