آموزش انکد فایل PHP گامبهگام
برای انکد فایل PHP کافی است فایل یا پروژه ZIP را آپلود کنید، نسخه هدف PHP و گزینههای لایسنس را انتخاب کنید و خروجی انکدشده را دانلود کنید. سپس فایل روی هر سروری که ionCube Loader دارد اجرا میشود و نیازی به خرید لایسنس انکدر نیست. در این راهنما هر مرحله را با نکات عملی و اشتباهات رایج مرور میکنیم.
این مقاله در یک نگاه
- قبل از هر چیز از سورس اصلی نسخه پشتیبان بگیرید؛ خروجی قابل بازگشت نیست.
- نسخه هدف PHP مهمترین انتخاب برای سازگاری خروجی است.
- فایل تنظیمات، ترجمه و assets نباید انکد شوند.
- مبهمسازی نام توابع و کلاسها لایه محافظتی اضافه میکند.
- خروجی را حتما قبل از تحویل روی محیطی با لودر تست کنید.
گام صفر: آمادهسازی پروژه
قبل از آپلود، دو کار انجام دهید که بعدا وقت زیادی برایتان صرفهجویی میکند. اول یک نسخه کامل از سورس اصلی را جای امن نگه دارید. انکد عملیاتی یکطرفه است و اگر نسخه اصلی را از دست بدهید، دیگر نمیتوانید پروژه را توسعه دهید.
دوم، مشخص کنید کدام فایلها باید انکد شوند. قاعده ساده این است که هر چیزی که منطق برنامه است انکد شود و هر چیزی که داده یا دارایی است دستنخورده بماند.
| نوع فایل | انکد شود؟ | دلیل |
|---|---|---|
| کلاسهای منطق کسب و کار | بله | ارزش اصلی محصول شماست |
| کلاس اعتبارسنجی لایسنس | بله | هدف مستقیم دستکاری |
| فایل تنظیمات (config) | خیر | مشتری باید بتواند ویرایش کند |
| ترجمه و assets | خیر | PHP نیستند یا باید خوانا بمانند |
| فایلهای تست و توسعه | خیر | اصلا نباید در بسته نهایی باشند |
مراحل انکد
- آپلود فایل یا پروژه فایل تکی PHP یا کل پروژه را به صورت ZIP بارگذاری کنید.
- انتخاب نسل انکدر نسل ۱۵ جدیدترین و امنترین است؛ برای سازگاری با سرورهای قدیمی میتوانید نسل پایینتر انتخاب کنید.
- انتخاب نسخه هدف PHP نسخهای که سرور مقصد اجرا میکند، از ۷.۴ تا ۸.۴.
- فعال کردن گزینههای محافظت مبهمسازی نام توابع و کلاسها و در صورت نیاز قفل دامنه و تاریخ انقضا.
- پرداخت و پردازش هزینه از کیف پول کسر و سفارش وارد صف پردازش میشود.
- دانلود خروجی خروجی به صورت فایل ZIP در پنل کاربری قرار میگیرد.
- تست خروجی را روی محیطی که لودر دارد اجرا و بررسی کنید.
انتخاب نسخه هدف PHP
این مهمترین تصمیم فنی کل فرایند است و بیشترین خطاهای پس از تحویل از انتخاب اشتباه آن ناشی میشود. قاعده کلی: همان نسخهای را هدف بگیرید که سرور مقصد اجرا میکند.
| وضعیت | نسخه پیشنهادی | دلیل |
|---|---|---|
| مقصد را دقیقا میدانم | همان نسخه سرور | بهترین سازگاری و کارایی |
| فروش عمومی اسکریپت | ۸.۱ یا ۸.۲ | روی اکثر هاستهای امروزی فعال است |
| هاستهای قدیمی | ۷.۴ | حداکثر سازگاری با محیطهای قدیمی |
| سرور مدرن و بهروز | ۸.۳ یا ۸.۴ | جدیدترین امکانات؛ نیازمند لودر بهروز |
گزینههای انکد و کاربردشان
هر گزینه یک هدف مشخص دارد؛ فعال کردن همه آنها همیشه بهترین کار نیست.
مبهمسازی نام توابع و کلاسها نامهای معنادار را با نامهای بیمعنا جایگزین میکند و تحلیل خروجی را سختتر میکند. برای محصولات تجاری توصیه میشود، اما اگر کدتان از نام کلاسها به صورت رشتهای استفاده میکند (مثلا فراخوانی داینامیک)، ممکن است رفتار برنامه تغییر کند؛ حتما تست کنید.
قفل دامنه خروجی را فقط روی دامنه مشخصی اجرا میکند. توضیح کامل در قفل کردن اسکریپت روی دامنه آمده است.
تاریخ انقضا برای نسخه دمو و اشتراک زماندار کاربرد دارد. جزئیات در صفحه لایسنسگذاری.
تست خروجی قبل از تحویل
این مرحله را هرگز حذف نکنید. یک محیط تست با لودر فعال بسازید (روی XAMPP یا یک هاست تست) و خروجی را کامل اجرا کنید. مسیرهای اصلی، فرمها و بخشهایی که فراخوانی داینامیک دارند را بررسی کنید.
اگر خطای نبود لودر گرفتید، مشکل از محیط تست است نه خروجی؛ راهنمای رفع خطای لودر را ببینید.
اشتباهات رایج
| اشتباه | نتیجه |
|---|---|
| نگه نداشتن سورس اصلی | امکان توسعه بعدی از بین میرود |
| انکد فایل تنظیمات | مشتری نمیتواند پیکربندی کند |
| نسخه هدف نامتناسب | خطای اجرا روی سرور مشتری |
| تست نکردن خروجی | کشف مشکل توسط مشتری |
| مبهمسازی بدون تست | خرابی فراخوانیهای داینامیک |
برای شناخت ابزار پشت این فرایند، ionCube Encoder چیست را بخوانید. مستندات رسمی گزینهها هم در سایت ionCube موجود است.
سوالات متداول
برای انکد باید لایسنس ionCube بخرم؟
خیر. با سرویس انکد آنلاین میتوانید بدون خرید لایسنس انکدر خروجی بگیرید و فقط بابت فایلهای انکدشده پرداخت کنید.
نسخه هدف PHP را چه بگذارم؟
همان نسخهای که سرور مقصد اجرا میکند. برای فروش عمومی، نسخهای میانه مثل ۸.۱ یا ۸.۲ انتخاب امنتری است.
فایل تنظیمات را هم انکد کنم؟
بهتر است نه. فایلهای config باید برای مشتری قابل ویرایش بمانند؛ فقط منطق و کلاس لایسنس را انکد کنید.
چطور مطمئن شوم خروجی سالم است؟
خروجی را روی محیطی با لودر فعال اجرا کنید و مسیرهای اصلی برنامه را تست کنید. مخصوصا بخشهایی که فراخوانی داینامیک دارند.
اگر فایلی در انکد خطا بخورد چه میشود؟
هزینه همان فایل به کیف پول شما بازمیگردد و بقیه فایلهای موفق تحویل داده میشوند.
مطالب مرتبط: ionCube Encoder چیست؟ · قفل اسکریپت روی دامنه · رفع خطای لودر
PHP