- چطور SourceGuardian را درست روی دایرکتادمین نصب کنم؟
- پیشنیازها (قبل از شروع)
- قدم 1 — شناسایی نسخه PHP و SAPIها
- قدم 2 — دانلود loader مناسب
- قدم 3 — انتخاب فایل loader صحیح (TS/NTS و API)
- قدم 4 — کپی کردن loader به مسیر مناسب
- قدم 5 — فعالسازی Loader از طریق php.ini یا فایل conf.d
- قدم 6 — ریاستارت سرویسهای مربوطه
- قدم 7 — بررسی نصب و عیبیابی
- خطاهای رایج و راهحلها
- 安全和操作提示
- مثال عملی — نصب برای PHP 7.4 (جمعبندی دستورات)
- نکته درباره دایرکتادمین و custombuild
- چرا نصب صحیح SourceGuardian مهم است؟
- سرویسها و پشتیبانی مرتبط
- 常见问题解答
چطور SourceGuardian را درست روی دایرکتادمین نصب کنم؟
در این راهنما گامبهگام نحوه نصب Loaderهای SourceGuardian برای انواع SAPIها (CLI، PHP-FPM، Apache/LiteSpeed) در کنترلپنل دایرکتادمین را توضیح میدهیم. این مقاله مناسب مدیران سرور، توسعهدهندگان PHP، کاربران VPS/سرور ابری و شرکتهایی است که از فایلهای PHP رمزگذاریشده توسط SourceGuardian استفاده میکنند.
پیشنیازها (قبل از شروع)
پیش از هر کاری مطمئن شوید موارد زیر در دسترس است:
- دسترسی SSH به سرور با کاربر 根 یا دسترسی sudo.
- دانستن نسخههای PHP نصب شده و SAPIهای فعال (مثلاً با
php -v، بررسی php-fpm یا Apache/lsphp). - دسترسی به صفحه دانلود loaderهای SourceGuardian: SourceGuardian Loaders.
- اگر از CloudLinux/alt-php استفاده میکنید، مسیرهای خاص مانند
/opt/alt/...را در نظر بگیرید.
قدم 1 — شناسایی نسخه PHP و SAPIها
برای هر نسخه PHP که میخواهید SourceGuardian را فعال کنید باید بدانید:
- نسخه PHP (مثلاً 7.4، 8.0).
- مسیر باینری CLI 和 فایل php.ini مربوطه.
- آیا PHP به صورت FPM اجرا میشود یا mod_php/lsphp؟
一些有用的检查命令:
php -v
php -m | grep SourceGuardian
php -i | grep "Loaded Configuration File"
php -i | grep "extension_dir"
php -i | grep "Thread Safety"برای بررسی SAPI وب، یک فایل phpinfo.php در public_html بسازید و سپس در مرورگر به آن مراجعه کنید.
<?php phpinfo(); ?>در phpinfo دنبال مواردی مانند Loaded Configuration File, extension_dir 和 Thread Safety بگردید.
قدم 2 — دانلود loader مناسب
از صفحه رسمی SourceGuardian، بسته مناسب سیستمعامل و معماری (مثلاً Linux x86_64) و نسخه PHP را دانلود کنید.
لینک رسمی دانلود:
https://www.sourceguardian.com/loaders/
مثال دستورات برای دانلود و استخراج:
wget https://www.sourceguardian.com/loaders/download/loaders.linux-x86_64.tar.gz
tar -xzvf loaders.linux-x86_64.tar.gzپس از استخراج، فایلهایی مانند ixed.7.4.lin 或者 ixed.8.0.lin را خواهید دید. نام دقیق وابسته به نسخه PHP است.
قدم 3 — انتخاب فایل loader صحیح (TS/NTS و API)
نکات مهم در انتخاب فایل:
- Thread Safety: اگر خروجی
php -i | grep "Thread Safety"数量 disabled را نشان دهد، به دنبال فایل NTS باشید؛ در غیر این صورت TS. - PHP API: مقدار API در
phpinfo()نمایش داده میشود؛ مطمئن شوید فایل loader با API نسخه PHP تطابق دارد.
قدم 4 — کپی کردن loader به مسیر مناسب
بهجای حدس زدن مسیرها، از مقدار extension_dir 使用示例:
EXTDIR=$(php -i | grep extension_dir | awk -F '=> ' '{print $2}')
cp ixed.7.4.lin $EXTDIR/ixed.7.4.lin
chown root:root $EXTDIR/ixed.7.4.lin
chmod 644 $EXTDIR/ixed.7.4.linنکته درباره توزیعها:
- CentOS/RHEL معمولاً مسیرهایی مثل
/usr/lib64/php/modules/دارند. - Debian/Ubuntu مسیرهایی مثل
/usr/lib/php/20190902/یا مشابه دارند. - CloudLinux/alt-php ممکن است مسیرهایی مانند
/opt/alt/php74/usr/lib64/php/modules/داشته باشند.
قدم 5 — فعالسازی Loader از طریق php.ini یا فایل conf.d
برای بارگذاری لودر از دستور zend_extension استفاده کنید. مثال (روش استاندارد برای CentOS/RedHat):
echo "zend_extension=$EXTDIR/ixed.7.4.lin" > /etc/php.d/20-sourceguardian.iniیا اگر php.ini در مسیر دیگری است:
echo "zend_extension=/usr/lib64/php/modules/ixed.7.4.lin" > /usr/local/php74/etc/php.d/20-sourceguardian.ini笔记: نام فایل ini را طوری انتخاب کنید که قبل از دیگر فایلهای وابسته بارگذاری شود؛ معمولاً پیشوندهای عددی مثل 10- 或者 20- متداول است.
قدم 6 — ریاستارت سرویسهای مربوطه
بسته به SAPI سرویسهای زیر را ریاستارت کنید:
- PHP-FPM:
systemctl restart php-fpm # or for separate versions systemctl restart php74-php-fpm - وبسرور Apache/HTTPD:
systemctl restart httpd # Ubuntu: systemctl restart apache2 - LiteSpeed/OpenLiteSpeed:
systemctl restart lsws
برای اطمینان از نام سرویسها:
systemctl list-units | grep php
systemctl list-units | grep http
قدم 7 — بررسی نصب و عیبیابی
برای بررسی از CLI:
php -vدر خروجی باید اشارهای به SourceGuardian یا ixed loader دیده شود.
برای بررسی وب:
- صفحه
phpinfo()را باز کنید و به دنبال بخش مربوط به SourceGuardian بگردید. - 从
php -mبرای دیدن ماژولها استفاده کنید.
خطاهای رایج و راهحلها
۱) خطای “Cannot load zend extension” یا خطا در لاگها
- مسیر فایل اشتباه است یا فایل مجوز مناسب ندارد. بررسی کنید با
chown root:root和chmod 644مالک و مجوز صحیح تنظیم شده باشد. - فایل برای معماری یا نسخه PHP مناسب نیست (TS vs NTS یا نسخه متفاوت).
- SELinux ممکن است مانع بارگذاری شود؛ وضعیت را با
getenforce查看。.
setenforce 0. این کار تنها برای عیبیابی است و برای حل بلندمدت باید قوانین مناسب SELinux تعریف شود.۲) لودر در CLI لود میشود ولی در وب نه
- احتمالاً Apache یا PHP-FPM از نسخه PHP متفاوتی استفاده میکند؛ حتماً phpinfo() از طریق وب را بررسی کنید و برای همان نسخه لودر نصب کنید.
- فایل ini لودر ممکن است در مسیر conf.d مربوط به SAPI وب قرار نگرفته باشد.
۳) محیطهای multi-PHP/CloudLinux
- برای هر alt-php یا نسخه جداگانه، لودر را در مسیر مربوطه کپی و فایل ini مناسب بسازید، سپس سرویس مرتبط را ریاستارت کنید.
安全和操作提示
- لودر را هرگز در دایرکتوریهای قابل دسترسی وب (public_html) قرار ندهید.
- مالک فایل باید
根و دسترسی644تنظیم شود. - بستههای دانلود را فقط از سایت رسمی SourceGuardian دریافت و در صورت امکان checksum یا امضا را بررسی کنید.
- هنگام ارتقا PHP فراموش نکنید لودر مناسب نسخه جدید را نصب کنید.
- برای محیطهای Production ابتدا روی سرور staging تست کنید.
مثال عملی — نصب برای PHP 7.4 (جمعبندی دستورات)
wget https://www.sourceguardian.com/loaders/download/loaders.linux-x86_64.tar.gz
tar -xzvf loaders.linux-x86_64.tar.gz
EXTDIR=$(php -i | grep extension_dir | awk -F '=> ' '{print $2}')
cp ixed.7.4.lin $EXTDIR/ixed.7.4.lin
chown root:root $EXTDIR/ixed.7.4.lin
chmod 644 $EXTDIR/ixed.7.4.lin
echo "zend_extension=$EXTDIR/ixed.7.4.lin" > /etc/php.d/20-sourceguardian.ini
systemctl restart php-fpm
systemctl restart httpd
php -vسپس از طریق مرورگر phpinfo() را بررسی کنید تا لودر در بخش مربوطه نمایش داده شود.
نکته درباره دایرکتادمین و custombuild
اگر PHP را با CustomBuild دایرکتادمین کامپایل یا نصب کردهاید، مسیرهای php.ini 和 extension_dir ممکن است در /usr/local/php*/ یا زیرشاخههای آن باشند. قبل از کپی کردن لودر، برای هر نسخه PHP مسیرها را از طریق باینری آن نسخه (مثلاً /usr/local/php74/bin/php -i) بررسی کنید و فایل ini مناسب را در پوشه etc/php.d همان نسخه قرار دهید.
چرا نصب صحیح SourceGuardian مهم است؟
دلایل اهمیت نصب صحیح:
- برنامههای رمزگذاریشده با SourceGuardian بدون لودر مربوطه اجرا نمیشوند.
- لودینگ نادرست ممکن است باعث خطا یا کرش PHP شود؛ بنابراین نسخه و نوع صحیح انتخاب شود.
- در محیطهای تجاری، نصب صحیح و امن این لودر تضمینکننده ادامه کار سرویسها و حفظ سازگاری خواهد بود.
سرویسها و پشتیبانی مرتبط
در صورتی که سرور شما چند نسخه PHP یا پیکربندیهای پیچیدهای مثل CloudLinux/alt-php دارد، تیم فنی میتواند نصب و کانفیگ را برای نسخههای متعدد PHP انجام دهد و روی پیکربندیهای خاص مانند LiteSpeed یا SELinux عیبیابی انجام دهد.
توضیح درباره پوشش جغرافیایی: خدمات فنی میتواند در شبکهای با بیش از 85 لوکیشن جهانی شامل نصب، تست و پیکربندی ارائه شود.









