نصب 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
- تشخیص نسخه و معماری PHP در ترمینال XAMPP دستور
php -vرا بزنید. هم شماره نسخه (مثلا ۸.۲) و هم وضعیت Thread Safety را یادداشت کنید. - دانلود بسته درست از سایت رسمی ionCube بسته Windows VC15 یا VS16 نسخه ۶۴بیتی را بگیرید.
- انتخاب فایل dll داخل بسته، فایلی مثل
ioncube_loader_win_8.2.dllبرای Non Thread Safe و فایلی با پسوند_tsبرای Thread Safe وجود دارد؛ متناسب با گام اول انتخاب کنید. - کپی به پوشه ext فایل انتخابشده را در مسیر
C:\xampp\php\ext\کپی کنید. - ویرایش php.ini فایل
C:\xampp\php\php.iniرا باز کنید و خط زیر را ترجیحا بالای سایر افزونهها اضافه کنید. - ریاستارت آپاچی از کنترلپنل XAMPP آپاچی را Stop و دوباره Start کنید.
- تست نهایی فایلی با
<?php phpinfo();بسازید و دنبال بخش ionCube بگردید.
انتخاب 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 موجود است.
سوالات متداول
نسخه 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
PHP