برای نصب ionCube روی Ubuntu ابتدا نسخه و معماری PHP را تشخیص دهید، Loader سازگار را از سایت رسمی دریافت کنید و با دستور zend_extension در تنظیمات PHP فعال کنید. سپس همان محیطی را تست کنید که برنامه در آن اجرا میشود؛ فعال بودن ionCube در CLI به معنی فعال بودن آن برای سایت نیست.
Loader با Encoder چه تفاوتی دارد؟
Encoder ابزار تولید فایل محافظتشده است و Loader اجرای آن فایل را در PHP ممکن میکند. نصب Loader فایل عادی PHP را کدگذاری نمیکند و جای کنترل دسترسی، بررسی بدافزار یا بهروزرسانی نرمافزار را نمیگیرد.
۱. محیط اجرای واقعی را پیدا کنید
php -v
php --ini
php -i | grep -E 'extension_dir|Thread Safety'
uname -m
نسخه اصلی و فرعی PHP، Thread Safety، معماری و روش اجرا مهماند. برای وب، اطلاعات را از پنل یا گزارش PHP همان دامنه بگیرید. فایل عمومی phpinfo اطلاعات حساس محیط را نشان میدهد؛ اگر موقتاً ساخته شد، پس از بررسی حذف شود.
روی cPanel، DirectAdmin یا پشته مدیریتشده، ابتدا روش رسمی همان پنل را بررسی کنید. تغییر دستی تنظیمات نسخهای که پنل مدیریت میکند ممکن است در بازسازی بعدی از بین برود یا کل دامنهها را تحت تأثیر قرار دهد.
۲. Loader متناسب را دریافت کنید
صفحه رسمی ionCube بستهها را بر اساس سیستم و معماری ارائه میکند و Loader Wizard برای انتخاب فایل مناسب راهنمایی میدهد. از بسته Linux مناسب x86-64 یا ARM64 استفاده کنید؛ انتخاب صرفاً بر اساس ۶۴بیتیبودن کافی نیست. سازگاری فایل کدگذاریشده را از تولیدکننده نرمافزار بپرسید.
آرشیو را در پوشه کاری استخراج کنید، فایل توصیهشده Wizard را به مسیر سیستمی مخصوص Loaderها منتقل کنید و نام دقیق آن را ثبت کنید. مسیر نمونه زیر الگوست، نه دستور قابل اجرا روی تمام سرورها:
zend_extension=/usr/local/lib/ioncube/LOADER_MATCHING_YOUR_PHP.so
۳. تنظیمات PHP را فعال کنید
در نصب معمول Ubuntu فایل ini جدا در مسیر پیکربندی همان نسخه بسازید. اگر PHP 8.3 هدف است، فایلهای CLI و FPM در مسیرهای جدا قرار دارند؛ در صورت استفاده از Apache module، مسیر apache2 نیز جداست. نام و ترتیب فایل را مطابق Wizard تعیین کنید تا ترتیب بارگذاری با OPcache درست باشد.
قبل از تغییر از فایل تنظیمات بکاپ بگیرید. پس از ذخیره، php -v را برای CLI و آزمون پیکربندی سرویس FPM را برای وب اجرا کنید. تنها سرویس مرتبط را پس از موفقیت تست بارگذاری مجدد کنید؛ restart سراسری وبسرور همیشه لازم نیست.
۴. نتیجه را در وب و خط فرمان بسنجید
php -r 'echo extension_loaded("ionCube Loader") ? "loaded\n" : "not loaded\n";'
php -v
برای وب، گزارش دامنه یا Wizard باید Loader فعال را نشان دهد. بعد از تأیید، Wizard و فایل تشخیص عمومی را پاک کنید. صفحه واقعی نرمافزار و در صورت وجود، cron آن را نیز تست کنید؛ cron ممکن است از binary دیگری استفاده کند.
خطاهای رایج
Loader در CLI فعال است ولی سایت خطا دارد
مسیر ini، نسخه PHP و FPM pool دامنه را بررسی کنید. بهروزرسانی alternative خط فرمان تنظیم وب را عوض نمیکند.
پیام فایل با این نسخه PHP اجرا نمیشود
نسخه Encoder، PHP هدف و Loader باید با فایل سازگار باشند. جدیدترین Loader الزاماً هر فایل قدیمی را روی هر نسخه PHP اجرا نمیکند. نسخه سازگار برنامه را از فروشنده دریافت کنید.
Unable to load dynamic library یا خطای startup
معماری، نام فایل، مجوز خواندن، کتابخانههای لازم و مسیر مطلق را بررسی کنید. کپیکردن Loader به پوشهای دلخواه بدون ارجاع درست کافی نیست.
بازگشت از تغییر ناموفق
ارجاع zend_extension جدید را غیرفعال کنید، پیکربندی را دوباره تست و سرویس مرتبط را reload کنید. تا علت مشخص نشده PHP را به شاخه پایانعمر تنزل ندهید. برای هاست اشتراکی، درخواست فعالسازی را با نسخه PHP دامنه برای پشتیبانی ارسال کنید.
منابع رسمی
بازبینی منابع: ۱۸ اکتبر ۲۰۲۶.