نصب ionCube Loader در XAMPP و لوکال‌هاست

برای نصب ionCube Loader در XAMPP کافی است فایل لودر متناسب با نسخه PHP و معماری سیستم را دانلود کنید، آن را در پوشه ext بگذارید، خط zend_extension را به php.ini اضافه کنید و آپاچی را ری‌استارت کنید. کل کار کمتر از پنج دقیقه است و بعد از آن می‌توانید فایل‌های انکدشده را روی سیستم خودتان تست کنید.

این مقاله در یک نگاه

  • انتخاب درست بین نسخه Thread Safe و Non Thread Safe مهم‌ترین گام است.
  • XAMPP ویندوز معمولا Thread Safe و ۶۴بیتی است.
  • خط zend_extension بهتر است بالای بقیه افزونه‌ها قرار بگیرد.
  • مسیر php.ini فعال را از خروجی phpinfo پیدا کنید تا فایل اشتباه را ویرایش نکنید.
  • تست لوکال قبل از تحویل خروجی به مشتری، از بسیاری از تیکت‌ها جلوگیری می‌کند.

چرا روی لوکال‌هاست به لودر نیاز داریم؟

لوکال‌هاست هم مثل هر سرور دیگری برای اجرای فایل‌های انکدشده به لودر نیاز دارد. اگر بدون لودر یک فایل انکدشده را باز کنید، همان خطای آشنای نبود لودر را می‌بینید.

مهم‌ترین کاربرد این کار برای توسعه‌دهندگانی است که محصول تجاری می‌فروشند. قبل از تحویل خروجی به مشتری، آن را روی XAMPP خودتان نصب و تست می‌کنید تا مطمئن شوید همه مسیرها درست کار می‌کند. این یک مرحله ساده است که جلوی برگشت خوردن سفارش و تیکت پشتیبانی را می‌گیرد.

نصب گام‌به‌گام روی XAMPP

  1. تشخیص نسخه و معماری PHP در ترمینال XAMPP دستور php -v را بزنید. هم شماره نسخه (مثلا ۸.۲) و هم وضعیت Thread Safety را یادداشت کنید.
  2. دانلود بسته درست از سایت رسمی ionCube بسته Windows VC15 یا VS16 نسخه ۶۴بیتی را بگیرید.
  3. انتخاب فایل dll داخل بسته، فایلی مثل ioncube_loader_win_8.2.dll برای Non Thread Safe و فایلی با پسوند _ts برای Thread Safe وجود دارد؛ متناسب با گام اول انتخاب کنید.
  4. کپی به پوشه ext فایل انتخاب‌شده را در مسیر C:\xampp\php\ext\ کپی کنید.
  5. ویرایش php.ini فایل C:\xampp\php\php.ini را باز کنید و خط زیر را ترجیحا بالای سایر افزونه‌ها اضافه کنید.
  6. ری‌استارت آپاچی از کنترل‌پنل XAMPP آپاچی را Stop و دوباره Start کنید.
  7. تست نهایی فایلی با <?php phpinfo(); بسازید و دنبال بخش ionCube بگردید.
zend_extension="C:\xampp\php\ext\ioncube_loader_win_8.2.dll"
ترتیب بارگذاری لودر باید پیش از OPcache بارگذاری شود. به همین دلیل بهتر است خط zend_extension مربوط به ionCube را بالاتر از خط مربوط به OPcache قرار دهید.

انتخاب Thread Safe یا Non Thread Safe

این تنها جایی است که بیشتر کاربران اشتباه می‌کنند و نتیجه‌اش بالا نیامدن آپاچی است. تشخیص درست ساده است: در خروجی php -v یا phpinfo() دنبال عبارت Thread Safety بگردید.

وضعیت در phpinfoفایل مورد نیازتوضیح
Thread Safety = enabledفایل با پسوند _tsحالت رایج XAMPP ویندوز
Thread Safety = disabledفایل بدون _tsمعمول در محیط‌های FPM
Architecture = x64بسته ۶۴بیتینسخه‌های جدید XAMPP
Architecture = x86بسته ۳۲بیتینسخه‌های قدیمی

نصب روی WAMP

اصول کار در WAMP کاملا یکسان است و فقط مسیرها تفاوت دارند. پوشه افزونه‌ها معمولا در C:\wamp64\bin\php\php8.x.x\ext قرار دارد و فایل php.ini فعال را می‌توانید از منوی خود WAMP باز کنید.

یک نکته مهم در WAMP این است که چند نسخه PHP کنار هم نصب می‌شوند. مطمئن شوید نسخه‌ای را ویرایش می‌کنید که در منوی WAMP به عنوان نسخه فعال انتخاب شده است، وگرنه تغییرات اثری نخواهد داشت.

اشتباهات رایج

مشکلعلتراه‌حل
آپاچی بعد از تغییر بالا نمی‌آیدفایل TS یا نسخه اشتباهفایل درست را جایگزین کنید
ionCube در phpinfo نیستphp.ini اشتباه ویرایش شدهمسیر Loaded Configuration File را چک کنید
خطای معماریفایل ۳۲بیتی روی نسخه ۶۴بیتیبسته متناسب را دانلود کنید
مسیر داخل php.ini اشتباهبک‌اسلش یا نام فایل غلطمسیر کامل و دقیق را بنویسید

اگر آپاچی بالا نیامد، فایل لاگ خطای آپاچی سریع‌ترین راه تشخیص است. برای درک بهتر نقش لودر این مقاله و برای رفع خطای عمومی نبود لودر این راهنما را ببینید. بسته‌های رسمی ویندوز هم در سایت ionCube موجود است.

جمع بندی: نصب ionCube Loader روی XAMPP سه گام واقعی دارد: انتخاب فایل dll متناسب با نسخه PHP و وضعیت Thread Safety، کپی آن در پوشه ext و افزودن خط zend_extension به php.ini درست. بیشترین خطا از انتخاب اشتباه نسخه Thread Safe و ویرایش فایل php.ini اشتباه ناشی می‌شود؛ هر دو را می‌توانید از خروجی phpinfo دقیق مشخص کنید.

سوالات متداول

نسخه TS بگیرم یا Non TS؟

به خروجی php -v یا phpinfo نگاه کنید؛ اگر Thread Safety روی enabled بود نسخه TS و در غیر این صورت Non TS. XAMPP ویندوز معمولا TS است.

روی WAMP هم همین مراحل است؟

بله، اصول یکسان است و فقط مسیر پوشه ext و فایل php.ini فرق می‌کند. در WAMP حتما نسخه PHP فعال را بررسی کنید.

چرا لودر روی لوکال لازم است؟

چون لوکال‌هاست هم مثل هر سرور دیگری برای اجرای فایل انکدشده به لودر نیاز دارد. بدون آن فایل اجرا نمی‌شود.

آپاچی بعد از افزودن خط بالا نمی‌آید، چه کنم؟

تقریبا همیشه یعنی فایل dll نامتناسب است. نسخه PHP، وضعیت Thread Safe و معماری ۳۲ یا ۶۴ بیت را دوباره بررسی کنید.

چند فایل لودر را همزمان اضافه کنم؟

خیر. فقط یک فایل متناسب با نسخه PHP فعال. افزودن چند خط zend_extension برای نسخه‌های مختلف باعث خطا می‌شود.

مطالب مرتبط: ionCube Loader چیست؟ · رفع خطای لودر · آموزش انکد فایل PHP