آموزش نصب SourceGuardian روی لینوکس با کنترلپنل DirectAdmin
آموزش نصب SourceGuardian روی لینوکس با کنترلپنل DirectAdmin
SourceGuardian یک نرمافزار تجاری برای محافظت از کدهای PHP است که امکان کدگذاری و رمزگذاری اسکریپتهای PHP را فراهم میکند. با استفاده از SourceGuardian میتوان کد منبع برنامه را از مشاهده و ویرایش غیرمجاز محافظت کرد.
همچنین امکان محدودکردن اجرای فایلهای محافظتشده بر اساس مواردی مانند IP سرور، نام دامنه، آدرس MAC و بازه زمانی وجود دارد. به این ترتیب، فایلهای کدگذاریشده را نمیتوان بهسادگی روی سرور یا دامنه دیگری اجرا کرد.
در این آموزش، نحوه نصب SourceGuardian Loader روی سرور لینوکس دارای DirectAdmin را بررسی میکنیم.
پیشنیازها
قبل از شروع، موارد زیر را در نظر داشته باشید:
-
دسترسی root به سرور
-
دسترسی SSH
-
نصب بودن DirectAdmin
-
مشخص بودن نسخه PHP مورد استفاده
-
انتخاب Loader متناسب با نسخه PHP و معماری سیستمعامل
نکته مهم: اگر روی سرور چند نسخه PHP نصب شده باشد، باید SourceGuardian Loader را برای نسخه PHP موردنیاز نصب کنید. مسیر PHP در نسخههای مختلف متفاوت است.
۱. نمونه خطای SourceGuardian
اگر Loader موردنیاز روی سرور نصب نباشد، هنگام اجرای یک اسکریپت محافظتشده ممکن است خطایی مشابه زیر مشاهده کنید:
PHP script '/home/USER/domains/example.com/public_html/...' is protected by SourceGuardian and requires a SourceGuardian loader 'ixed.7.1.lin' to be installed.
1) Click here to download the required 'ixed.7.1.lin' loader from the SourceGuardian site
2) Install the loader to /usr/local/php71/lib/php/extensions/no-debug-non-zts-20160303
3) Edit /usr/local/php71/lib/php.ini and add 'extension=ixed.7.1.lin' directive
4) Restart the web server
در این خطا، USER نام کاربری DirectAdmin و example.com نام دامنه است.
نام Loader نیز اهمیت دارد. برای مثال:
ixed.7.1.lin
نشان میدهد Loader مربوط به PHP 7.1 و محیط لینوکس موردنیاز است.
۲. ورود به سرور از طریق SSH
ابتدا با استفاده از PuTTY یا هر نرمافزار SSH دیگری، با کاربر root به سرور متصل شوید.
سپس یک دایرکتوری برای فایلهای SourceGuardian ایجاد کنید:
mkdir -p /usr/local/lib/ixed
وارد این دایرکتوری شوید:
cd /usr/local/lib/ixed
۳. دانلود SourceGuardian Loader
فایل Loader را متناسب با معماری سیستمعامل دانلود کنید.
برای سیستمهای Linux 64-bit:
wget https://www.sourceguardian.com/loaders/download/loaders.linux-x86_64.tar.gz
سپس فایل دانلودشده را از حالت فشرده خارج کنید:
tar -xzvf loaders.linux-x86_64.tar.gz
پس از استخراج، Loaderهای مربوط به نسخههای مختلف PHP در اختیار شما قرار میگیرند.
نکته: Loader مناسب باید با نسخه PHP و معماری سیستم شما سازگار باشد. از نصب یک Loader صرفاً بر اساس نام فایل خطا خودداری کنید و نسخه PHP و نوع سیستمعامل را بررسی کنید.
۴. بررسی نسخه و مسیر PHP
برای مشاهده نسخه PHP و فایلهای تنظیمات آن، دستور زیر را اجرا کنید:
php --ini
برای مثال، ممکن است خروجی مشابه زیر باشد:
Configuration File (php.ini) Path: /usr/local/php71/lib
Loaded Configuration File: /usr/local/php71/lib/php.ini
Scan for additional .ini files in: /usr/local/php71/lib/php.conf.d
Additional .ini files parsed:
/usr/local/php71/lib/php.conf.d/10-directadmin.ini
/usr/local/php71/lib/php.conf.d/50-webapps.ini
در این مثال، PHP مورد استفاده نسخه 7.1 است و فایل تنظیمات آن در مسیر زیر قرار دارد:
/usr/local/php71/lib/php.ini
نکته مهم: ممکن است روی یک سرور چند نسخه PHP مانند 7.4، 8.1 و 8.2 نصب شده باشد. بنابراین حتماً نسخه PHP مورد استفاده وبسایت یا دامنه موردنظر را مشخص کنید.
۵. ایجاد فایل تنظیمات SourceGuardian
بهتر است تنظیمات SourceGuardian را در یک فایل .ini جداگانه قرار دهید تا فایل اصلی php.ini بدون تغییر باقی بماند.
برای مثال، اگر PHP 7.1 استفاده میکنید:
touch /usr/local/php71/lib/php.conf.d/11-ixed.ini
سپس Loader را در این فایل معرفی کنید:
echo "zend_extension=/usr/local/lib/ixed/ixed.7.1.lin" > /usr/local/php71/lib/php.conf.d/11-ixed.ini
نکته: در دستور بالا،
php71وixed.7.1.linفقط نمونه هستند. در صورت استفاده از نسخه دیگری از PHP، باید مسیر و نام Loader متناسب با همان نسخه تغییر کند.
۶. راهاندازی مجدد وبسرور
پس از اعمال تنظیمات، وبسرور را Restart کنید:
service httpd restart
در صورت استفاده از سیستمهای مبتنی بر systemd، میتوانید از دستور زیر نیز استفاده کنید:
systemctl restart httpd
اکنون SourceGuardian Loader باید برای PHP مربوطه فعال شده باشد.
بررسی نصب SourceGuardian
برای اطمینان از فعال شدن Loader، چند روش وجود دارد.
روش اول: بررسی از طریق PHP CLI
دستور زیر را اجرا کنید:
php -v
اگر Loader بهدرستی برای PHP CLI فعال شده باشد، اطلاعات مربوط به آن در خروجی PHP نمایش داده میشود.
همچنین میتوانید برای بررسی دقیقتر ماژولها از دستور زیر استفاده کنید:
php -m
توجه: فعال بودن SourceGuardian در PHP CLI الزاماً به معنی فعال بودن آن در PHP مورد استفاده وبسایت نیست. DirectAdmin ممکن است PHP جداگانهای برای وبسایتها استفاده کند.
روش دوم: استفاده از phpinfo
برای بررسی PHP مورد استفاده توسط وبسرور، یک فایل با نام phpinfo.php در مسیر اصلی وبسایت، یعنی public_html، ایجاد کنید.
محتوای فایل:
<?php
phpinfo();
سپس فایل را ذخیره کنید و در مرورگر آدرس زیر را باز کنید:
https://example.com/phpinfo.php
در صفحه phpinfo میتوانید نسخه PHP و تنظیمات Loaderها را مشاهده کنید.
برای پیدا کردن SourceGuardian در صفحه، عبارت زیر را جستوجو کنید:
SourceGuardian
اگر اطلاعات SourceGuardian نمایش داده شود، Loader برای PHP وبسرور فعال شده است.
⚠️ نکته امنیتی مهم: فایل
phpinfo.phpاطلاعات زیادی درباره تنظیمات و محیط سرور نمایش میدهد. پس از پایان بررسی، این فایل را از روی سرور حذف کنید:
rm /path/to/public_html/phpinfo.php
نکته مهم درباره چند نسخه PHP در DirectAdmin
در سرورهای دارای DirectAdmin ممکن است چند نسخه PHP بهصورت همزمان نصب شده باشد. برای مثال:
PHP 7.4
PHP 8.1
PHP 8.2
PHP 8.3
در این شرایط، نصب SourceGuardian برای PHP 7.4 باعث فعال شدن آن برای PHP 8.2 نمیشود.
بنابراین ابتدا باید مشخص کنید دامنه موردنظر با کدام نسخه PHP اجرا میشود و سپس Loader مناسب همان نسخه را فعال کنید.
همچنین توجه داشته باشید که PHP در خط فرمان (CLI) و PHP مورد استفاده وبسرور (PHP-FPM یا سایر SAPIها) ممکن است تنظیمات متفاوتی داشته باشند.
جمعبندی
مراحل کلی نصب SourceGuardian روی DirectAdmin به این صورت است:
1. ورود به سرور با SSH
2. بررسی نسخه PHP
3. دانلود Loader مناسب
4. استخراج فایلهای SourceGuardian
5. قرار دادن Loader در مسیر مناسب
6. ایجاد فایل تنظیمات .ini
7. معرفی Loader با zend_extension
8. Restart کردن سرویس وب
9. بررسی با php -v یا phpinfo
پس از انجام این مراحل، اسکریپتهای PHP که با SourceGuardian محافظت شدهاند، در صورت سازگاری نسخه PHP و Loader، قادر به اجرا روی سرور خواهند بود.
هنوز نظری ثبت نشده است. اولین نفری باشید که نظر میدهد!