آموزش WHMCS بخش دوم – سیستم مورد نیاز برای کار با WHMCS
آموزش WHMCS بخش دوم – سیستم مورد نیاز برای کار با WHMCS
سیستم مدیریت هاست WHMCS با اغلب محیطهای وب سرورهائی که از PHP و MySQL استفاده میکنند سازگار است. هرچند پیش از نصب و به روز رسانی WHMCS شما باید مطمئن شوید که سیستم شما الزامات لازم برای نصب WHMCS را داراست. برای مثال پیش از آن که شما از نسخه WHMCS 8.10 به نسخه WHMCS 8.12 به روزرسانی انجام دهید، باید مطمئن شوید که سیستم سخت افزاری شما تمام الزامات مرتبط به نسخه WHMCS 8.11 را دارست.
- اگر میخواهید که از حالت به روز رسانی خودکار (Automatic Updater) استفاده کنید، مطمئن شوید که سیستم شما نکات گفته شده در بخش «الزامات Automatic Updater» را آمده است را خواهندهاید.
- بهتر است پیش از اقدام به هرگونه به روز رسانی، یادداشتهای انتشار (Release notes) را به دقت بخوانید. وابستگیها به روز رسانی در صورتی که به دقت انجام نشود، میتوانند سبب ایجاد مشکلات جدید در سیستم کار شما شوند.
- مطمئن شوید که به درستی فهرست ماژولهای مورد نیاز را به دقت مطالعه کردهاید و هر آنچه که برای نصب نیاز دارید را پیش از نصب آماده کنید.
نسخههای پیشتیبانی شده
در حال حاظر (فوریه ۲۰۲۵) ما از نسخههای WHMCS که در زیر از آنها نام برده شده است به صورت کامل پشتیبانی میکنیم:
| نسخه WHMCS | تایر فعلی | یادداشتهای انتشار | تاریخ انقضاء پشتیبانی و سرویس |
| WHMCS 8.12 | General Availability | ۸.۱۲ Release Notes | ۲۰۲۶-۰۱-۳۱ |
| WHMCS 8.11 | Long-Term Support | ۸.۱۱ Release Notes | ۲۰۲۵-۰۹-۳۰ |
| WHMCS 8.10 | Long-Term Support | ۸.۱۰ Release Notes | ۲۰۲۵-۰۴-۳۰ |
این نسخههای منتشر شده در مرحله توسعه فعال (Active development) هستند که بخشی از مراحل توسعه نسخههای WHMCS به شمار میروند. تمام نسخههای پیش از این نسخهها در حال «پایان فعالیت – End of life یا EOL» قرار گرفتهاند و دیگر به روز رسانیها و یا نسخههای اصلاح شده برای آنها (بدون توجه به نسخه انتشارشان) منتشر نمیشود. اگر اکنون از یک نسخه EOL از WHMCS استفاده میکنید، ما پیشنهاد میکنیم که در سریع ترین زمان ممکن به یک نسخه فعال به روز رسانی خودتان را انجام دهید.
در صورتی که از یک نسخه EOL از WHMCS استفاده میکنیم، پیشنهاد میکنیم که به مقاله مرتبط به این موضوع مراجعه کنید و به روز رسانیهای لازم را مطابق آنچه که در این مقاله گفته ایم انجام دهید.
سیستمهای مورد نیاز
برای آنکه بتوانید یک نسخه فعال و مورد پشتیبانی از WHMCS را در مدیریت هاست خودتان به کار ببرید ما پیشنهاد میکنیم که این موارد را پیش از نصب WHMCS در سیستم خودتان فراهم کنید تا بتوانید با موفقیت از آن بهره بگیرید.
| الزامی | پیشنهاد شده | |
| سیستم عامل | Linux® | N/A |
| وب سرور آپاچی | Apache 2.x | N/A |
| اکستنشنهای آپاچی | N/A | mod_rewrite |
| هندلر آپاچی | هر موردی که به هاست مجازی یا کل سرور مرتبط باشد | N/A |
| نسخه PHP | PHP 7.2, 7.3, 7.4, or 8.1 (WHMCS 8.10)
PHP 7.2, 7.3, 7.4, 8.1, or 8.2 (WHMCS 8.11 and later) |
N/A |
| حداقل ورژن ionCube Loader | ۱۰.۲.۰ or higher (PHP 7.2)
۱۰.۳.۱ or higher (PHP 7.3) ۱۰.۴.۳ or higher (PHP 7.4) ۱۲.۰.۱ or higher (PHP 8.1) ۱۳.۰.۲ or higher (PHP 8.2 |
N/A |
| اکستنشنهای PHP | · تمام اکستنشنهای مرتبط به کامپایل
· cURL 7.36 یا بالاتر با SSL · کتابخانه GD2 Image · IMAP · iobCube Loader · JSON · PDO · PDO_MySQL (شما باید کامپایلهای خودتان را با PDO_MySQL را همراه با mysql انجام دهید. شما نمیتوانید کامپایلها را با libmysqlient انجام دهید) · Reflection · XML |
· BC Math
· Fileinfo · GMP · Iconv · Intl · Mbstring · OpenSSL 1.0.1c یا بالاتر همراه با TLS 1.2 یا بالاتر · SOAP |
| محدودیت حافظه PHP | ۶۴ مگابایت | ۱۲۸ مگابایت |
| ورژن MySQL | ۵.۲ | ۸.۰ |
نکات:
- ما شدیدا پیشنهاد میکنیم که از آخرین ورژن یا نسخههای پایدار شده در تمام نرم افزارها و اکستنشهای عنوان شده در بالا استفاده کنید.
- فضاهای حافظه رم و دیسک، بسته به اندازه نسخه نصب شما و سطح فعال سازی شما دارند.
- این اطلاعات تنها برای برخی از نسخههایی هستند که اکنون در حال پشتیبانی هستند. برای الزامات نسخههای End-Of-life یا EOLها ما پیشنهاد میکنیم به مقاله مرتبط به به روز رسانی آنها در همین وبلاگ مراجعه کنید.
محیط سیستم
سیستم مدیریت هاست WHMCS برای محیط LAMP سنتی (یعنی Linux, Apache, MySQL, PHP) طراحی شده است که از نسخه سیستم فایل استاندارد و هسته (Corn) زیرسیستم آن استفاده میکند. WHMCS تنها در محیطهای مبتنی بر لینوکس که سرور آپاچی را اجرا میکنند، معتبر است. محیطهای دیگر نظیر پیکربندیهای ویندوز ممکن است با مشکلات سازگاری با WHMCS روبرو شوند و نیروهای پشتیبان هم نمیتوانند کار خاصی در این زمینه برای شما انجام دهند.
- برخی از نصبهای WHMCS از NGINX® به جای آپاچی استفاده میکنند، اما تنها دسترسی محدودی به بسیاری از سرویسها دارند.
- اگر شما باید از محیطهای دیگری به غیر از محیط LAMP استفاده کنید، با پشتیبان خدمات هاستینگ یا مدیر هاست خودتان در تماسب باشید و نیازهای بلندمدت خودتان را مورد بررسی دقیق قرار دهید.
هندلر آپاچی در WHMCS
در اینجا شما میتوانید بین هندلر هاست مجازی (Virtual host handler) و هندلر کل سرور (Server-wide Handler) انتخاب کنید.
- هندلرهای هاست مجازی (برای مثال suPHP یا mod_ruid2) فرآیند PHP را به عنوان یک کاربر خاص بر روی یک نام دامنه انجام میدهد.
- هندلر کل سرور (برای مثال CGI یا mod_php) تمام کدهای PHP را به عنوان یک کاربر انجام پشتیبانی میکنند.
نکته: در زمانی که شما هندلر PHP را انتخاب میکنید، باید مطمئن شوید که در اینجا هیچ اپلیکیشنی وجود ندارد که در همان نام کاربری به نام WHMCS اجرا شود.
دایرکتیوهای آپاچی در HWMCS
سیستم مدیریتهای WHMCS از پیکربندیهای که در ادامه و در فایل .haccess آماده است، استفاده میکنند:
- فایل ~/.htaccess حاوی دایرکتیوهای mod_rewrite است که مسیرها در دسترسی و قابل مسیریابی را از طریق فایل php ارسال میکند. این کار امکان مسیریابی داخلی برای توابع و ایجاد آدرسهای URL پسند را در اختیار شما قرار میدهد.
- فایل ~/vendor/.htaccess از به کارگیری مستقیم فایلها از طریق دایرکتوری ~/vendor جلوگیری میکند، در حالی کهه سیستم مدیریتهای WHMCS به آن کتابخانه دسترسی دارد.
نکته: برای کمک به جایگزین کردن این نصب بر روی یک سیستم NGINX®، مقاله «محدود کردن دایرکتوری NGINX» را مطالعه کنید.
دیتابیس MySQL در WHMCS
سیستم مدیریت هاست WHMCS از MySQL برای مدیریت موفق بانک داده بهره میگیرد. هر چند جایگزینهای دیگر سازگار با حالت باینری نظیر MariaDB® نیز میتوانند برای نصبهای مشابه به خدمت گرفته شوند.
نکته: سیستم مدیریت هاست WHMCS از APIهای داخلی بانکهای داده PDO بهره میگیرد. ما پیشنهاد میکنیم که توسعه دهندگان طرف ثالث با دیتابیسهایی که از APIهای WHMCS بهره میبرند، استفاده کنند. برای اطلاعات بیشتر در این زمینه مقاله «دیتابیسهای در WHMCS» را در همین وبلاگ مطالعه کنید.
مجوزهای بانکهای داده در WHMCS
برای فرایند نصب، سیستم مدیریت هاست WHMCS از مجوزهای زیر برای دیتابیس استفاده میکند:
ALTER, DROP, LOCK TABLES
CREATE, INDEX, SELECT
DELETE, INSERT, UPDATE
برای کاربردهای روزانه، شما میتوانید دیتابیس WHMCS را به وسیله محدود کردن مجوزهای ALTER، CREATE، DROP و INDEX محدود کنید. سیستم مدیریت هاست WHMCS از این مجوزها برای نصب، به روزرسانی، فعال سازی و غیرفعال سازی ماژولهای خودش بهره میگیرد.
رمزنگاری کردن اتصال دیتابیسهای در WHMCS
نکته: این پشتیبانی در نسخه WHMCS 8.8 اضافه شده است.
برای پشتیبانی از رمزنگاری اتصالهای MySQL از متغییرهای پیکربندی که در ادامه در فایل configuration.php آمده است، پشتیبانی میگردد. شما میتوانید از متغییرهای زیر استفاده کنید.
- db_tls_ca: مسیر فایل pem را مشخص میکند (برای مثال /var/www/html/whmcs/ca.pem).
- db_tls_ca_path: مسیر دایرکتوری که فایلهای اعتبار نامهها CA در آن قرار دارد را مشخص میکند.
- db_tls_cert: مسیر اعتبارنامههای مشتری یا کلاینت را مشخص میکند.
- db_tls_cipher: یک فهرست از یک یا چند رمز (cipher) برای بهرهگیری در رمزنگاری SSL در قالب سازگار با SSL را مشخص میکند.
- db_tls_key: مسیر کلیدهای کلاینت را مشخص میکند.
- db_tls_verify_cert: حالت غیرفعال (۰) و فعال (۱) را برای اعتبارنامه سرور را مشخص میکند.
نکته: اگر شما db_tls_verify_cert را بر روی ۱ (فعال) قرار دهید، مقدار db_host در فایل configuration.php باید از مطابق با Common Name (CN) یا Subject Alternative Name (SAN) که اعتبار نامه شما در db_tls_cert استفاده کرده است باشد. در صورتی که این تنظیم را انجام ندهید، شما به خطا برخورد خواهید کرد. برای اطلاعات بیشتر در این زمینه میتوانید به بخش خطای Could not connect مراجعه کنید و توضیحات کامل را در آنجا بخوانید.
نکته: اگر db_tls_verify_cert را بر روی ۱ (فعال) قرار دهید، مقدار db_host در فایل configuration.php باید با Common Name (CN) یا Subject Alternative Name (SAN) در اعتبارنامه ای که شما در db_tls_cert معرفی کرده اید، تنظیم و ست کنید.
- اگر نام هاست ست نشده باشد و db_tls_verify_cert فعال باشد، شما با خطای Could not connect to database روبرو خواهید شاد.
- برای این حل این مشکل مقدار db_tls_verify_cert را بر روی (۰) (غیرفعال) قرار داده و سپس یک اعتبارنامه جدید با یک CN یا SAN مطابق با مقدار db_host خودتان تهیه کنید.
شما میتوانید این مقدارها را پیش، در حین یا پس از نصب با استفاده از روش نصب خط فرمان (Command line installation method) یا پس از نصب با استفاده از روش نصب مرورگر (Browser base installation method) پیکربندی را تنظیم کنید.
- برای نصبهایی که در آن این پیکربندی فعال است، مقالات «فعال سازی رمزنگاری MySQL در WHMCS» و «پیکربندی فایل php» را مطالعه کنید.
- برای اطلاعات بیشتر درباره پیکربندی MySQL میتوانید مقالههای «استفاده از رمزنگاری اتصالها در WHMCS» و «متغییرهایی حالت سرور WHMCS» را در همین بلاگ مطالعه کنید.
- برای تنظیم پیکربندی رمزنگاری اتصال MySQL بر روی cPanel و WHM Server مستندات اتصال و پیکربندی MySQL از طریق cPanel را مطالعه کنید.
PHP در WHMCS
در صورت امکان توصیه میکنیم از یک نسخه PHP که در حال توسعه فعال یا در حال دریافت اصلاحات امنیتی بالادستی PHP است، بهره بگیرید.
- مشکلاتی که در پیکربندی PHP شما رخ میدهد، میتواند سبب مشکلات جدی یا جلوگیری استفاده برخی از پیکربندیهای شما شود. برای مثال، ممکن است شما هشدارهای هسته سیستم (System Corn) و تطابق ورژن سرور وب، در صورت عدم تطابق نسخه PHP، را مشاهده کنید.
- برخی از این پیکربندیها میتوانند به الزامات اضافه تری احتیاج داشته باشند. برای مثال Automatic Update نیازمند تنظیمات PHP خاص است.
اکستنشنهای PHP در WHMCS
افزون بر اکستن شنهائی که در بالا به آن اشاره گردید، سیستم مدیریت هاست WHMCS نیازمند اکستنشهای سازگاری پیش فرض (برای مثال PDO، MySQL، JSON، LibXML، DOM یا Fileinfo) است.
- اگر یک اکستنشن در فهرست ماورد سازگار پیش فرض نسخه PHP شما ظاهر نگردد، آن را غیرفعال (Disable) نکنید.
- سازگاری PCI ممکن است نیازمند TLS 1.2 باشد.
- PDO_MySQL را با libmysqlclient کامپایل نکنید. شما نباید آن را با mysqlnd کامپایل کنید. برای اطلاعات بیشتر مقاله «هشدارهای watch» در همین وبلاگ را مطالعه کنید.
مجوزهای فایل در WHMCS
تنظیمات مجوزهای WHMCS وابسته به پیکربندیهای ویژه سیستم شماست. برای نمونه، ما پیشنهاد میکنیم که مجوزهای (Permissions) در ادامه را برای یک سرور WHM یا cPanel استفاده کنید:
- ۴۰۰ – php
- ۷۵۵ – /crons/pipe.php
- ۶۴۴ – در تمام فایلهای دیگر PHP
- ۷۵۵ – تمام دایرکتوریها
مالکیت فایل یا گروه باید به همان نام دایرکتوری کاربر (user directory) باشد، برای مثال، بر روی یک سرور cPanel و WHM باید مسیر ریشه /home/username/public_html/ نام کاربری (username) میبایست، از نام کاربری صاحب همان فایل یا گروه استفاده کند.
مالک و گروه فرآیند PHP باید با نام دایرکتوری کاربر یکسان باشند. به عنوان مثال در یک سرور cPanel و WHM با یک ریشه در وب به آدرس /home/username/public_html/ مالک فرآیند PHP و گروه هر دو نام کاربری خواهند بود.
برای بیشتر نصبهای WHMCS، ما پیشنهاد میکنیم که مجوزهای زیر را استفاده کنید.
| Chmod Permission | فایل یا دایرکتوری |
| ۴۰۰ – قابل خواندن | configuration.php |
| ۷۷۷ – قابل نگارش | /attachments |
| ۷۷۷ – قابل نگارش | /downloads |
| ۷۷۷ – قابل نگارش | /templates_c |
| ۶۴۴ (مالک قادر به نوشتن، دیگران قادر به خواندن) | تمام فایلهای دیگر |
| ۷۵۵ (مالک قادر به نوشتن، دیگران قادر به خواندن و اجرا کردن) | تمام دایرکتوریهای دیگر |
- این برای نصبهایی که از suPHP یا phpSuExec استفاده میکنند، قابل به کاربردن نیست.
- اگر از DSO به عنوان یک هندلر PHP استفاده میکنید، شما باید از مجوز ۶۴۴ استفاده کنید.