آمادهسازی سرور #
TestRail برای نصب روی سرور به یک web server، یک database مبتنی بر SQL (MySQL)، یک database از نوع NoSQL (Cassandra ۳.۱۱) و یک محیط PHP فعال نیاز دارد. توضیح نصب Linux، Apache، MySQL و PHP (که معمولا با نام LAMP شناخته میشود) در محدوده این راهنمای نصب نیست، اما در وب راهنماهای خوبی برای نصب سیستم LAMP روی سیستمهای محبوب Linux و Unix وجود دارد:
نکات مهم پیش از نصب #
#
از TestRail ۷.۱ به بعد، TestRail هم به databaseهای MySQL (یا MariaDB) و Cassandra و هم به driverهای مرتبط با آنها نیاز دارد.
نصب پیشنیازها #
برای استفاده از TestRail روی یک سرور مبتنی بر Unix با databaseهای MySQL و & Cassandra، extensionهای PHP زیر لازم است:
- extension مربوط به mysql در PHP برای دسترسی به database
- extension مربوط به curl در PHP برای بررسی updateها و موارد مشابه
- extension مربوط به json در PHP برای فایلهای configuration و integrationها
- extension مربوط به mbstring در PHP برای کار با stringهای Unicode
- ionCube PHP loader برای decode کردن فایلهای PHP مربوط به TestRail
- extension مربوط به xml در PHP برای import/export فایلهای XML
- extension مربوط به zip در PHP برای فشردهسازی پیوستهای ایمیل
- extension مربوط به zlib در PHP که امکان خواندن و نوشتن شفاف فایلهای فشرده gzip (.gz) را فراهم میکند؛ این مورد فقط برای مشتریان Enterprise لازم است.
- extension مربوط به gd در PHP برای تولید chartها
همچنین باید driver مربوط به Cassandra را برای سیستمعاملی که TestRail روی آن نصب میشود نصب کنید (اینجا را ببینید).
#
برای جزئیات بیشتر درباره پیشنیازهای Cassandra و نصب/پیکربندی کامل آن، به دستورالعملهای نصب Cassandra مراجعه کنید.
بسته به سیستمعامل و platform، extensionهای mysql و curl در PHP باید از طریق package manager همان platform نصب و در فایل configuration با نام PHP.ini فعال شوند. برای مثال، دستور زیر این extensionها را روی سیستمهای Debian/Ubuntu نصب میکند:
$ sudo apt-get install php7.3-mysql php7.3-curl php7.3-json php7.3-mbstring php7.3-xml php7.3-gd php7.3-zip -y
در بعضی سیستمها، این moduleها باید در فایل configuration با نام PHP.ini هم فعال شوند. سیستمهایی مانند Ubuntu معمولا پس از نصب، extensionها را بهصورت خودکار فعال میکنند. برای انجام این کار، خطوط زیر را به انتهای فایل configuration اضافه کنید و مطمئن شوید که قبلا در PHP.ini فعال نشده باشند. در بیشتر سیستمها میتوانید PHP.ini را در مسیرهای /etc/php7.۳، /etc/php یا /etc/php7.۳/apache2 پیدا کنید:
extension=mysql.so
extension=curl.so
extensionهای json و mbstring معمولا مستقیما در PHP وجود دارند و نیازی به نصب module خارجی ندارند. با این حال، اگر در TestRail برای یکی از این moduleها پیام missing dependency دیدید، باید آن را هم به نصب PHP خود اضافه کنید؛ مثلا با نصب module به نام php7.۳-json.
آخرین extension موردنیاز PHP، ionCube PHP loader رایگان است. میتوانید نسخه مناسب ionCube را برای سیستمعامل خود از وبسایت ionCube دانلود کنید. پس از دانلود و extract کردن فایلها روی web server، آنها را در یک directory دلخواه قرار دهید؛ برای مثال /opt/ioncube.
برای فعال کردن ionCube، extension مربوط به ionCube loader را به PHP.ini اضافه کنید. برای این کار، حتما از دستورهای configuration با نام zend_extension یا zend_extension_ts استفاده کنید و مسیر کامل extension را مشخص کنید:
zend_extension=/opt/ioncube/ioncube_loader_lin_7.3.so
اگر از نسخه دیگری از PHP استفاده میکنید، مثلا PHP ۷.۴، مطمئن شوید نسخه متناظر ionCube loader را مشخص کردهاید. برای نمونه، در PHP ۷.۴ باید ionCube loader را به شکل زیر load کنید؛ به تفاوت نسخه در نام فایل توجه کنید:
zend_extension=/opt/ioncube/ioncube_loader_lin_7.4.so
اگر مطمئن نیستید کدام extension مربوط به ionCube را باید برای سیستم سرور خود فعال کنید، script با نام loader-wizard.php را در directory مربوط به web server کپی کنید، از طریق مرورگر به آن دسترسی بگیرید و دستورالعملهای نصب را دنبال کنید. پس از نصب extensionها، web server را restart کنید تا extensionهای تازه نصبشده load شوند.
با اجرای php -v میتوانید بررسی کنید که extension مربوط به ionCube loader با موفقیت نصب شده است. توجه داشته باشید که PHP command line interface ممکن است از فایل configuration متفاوتی نسبت به نسخه PHP مورد استفاده web server استفاده کند. مطمئن شوید ionCube در همه فایلهای PHP.ini مرتبط فعال شده باشد. اگر خروجی php -v چیزی شبیه نمونه زیر باشد، extension مربوط به ionCube loader با موفقیت نصب شده است؛ به خط ionCube PHP Loader توجه کنید:
PHP 7.3.25 (cli) (built: Nov 24 2020 xx:xx)
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.25, Copyright (c) 1998-2018 Zend Technologies
with the ionCube PHP Loader v10.4.5, Copyright (c) 2002-2020, by ionCube Ltd.
#
نکته درباره SELinux: اگر SELinux روی سیستم شما فعال باشد (این مورد در RedHat و توزیعهای مشابه Linux رایج است)، ممکن است Apache و/یا PHP بهدلیل محدودیتهای دایرکتوری نتوانند ionCube یا فایلهای دیگر را بارگذاری کنند. اگر با این مشکل روبهرو شدید، بسته به نیازتان میتوانید تنظیمات SELinux را تغییر دهید یا SELinux را غیرفعال کنید.

