فایل لیسانس چی هست ؟؟

alik

کاربر قدیمی پرشین تولز
چون توی سئوال قبلیم راجب فایل لیسانس به نتیجه خاصی نرسیدم و در کل بنظرم رسید چیز خوبیه شما هم بدونید استفاده کنید :

اول به zend safeguard 4 نیاز دارید که کرک هم شده باشد .
دوم این مطلب را قشنگ بخونید :happy:

حتما افراد زیادی هستند که با زند اسکریپت هاشون را انکود کردن و میدونن که چجوری با زند کار کنند .

شما زمان انکود کردن یک گزینه در مورد تاریخ مصرف اسکریپت مشاهده میکنید که توسط اون تاریخ میتوانید تعیین کنید اسکریپت تا چه زمانی کار کنه و بعد از اون تاریخ فاسد میشه و دیگه کار نمیکنه

حالا یک امکان دیگری وجود دارد که شما میتوانید محدودیت های بیشتر اعمال کنید

برنامه زند را باز کنید و مثل قبلا برای انکود کردن اسکریپت با شرایط مورد نیازتان تنظیمش کنید

به قسمت security بروید و در قسمت license enforcment support اول یک اسم برای محصول خودتان انتخاب کنید توجه کنید اسم بعد مورد استفاده قرار میگیرد و یک اسم درست حسابی انتخاب کنید.

گزینه license file restriction را انتخاب کنید تا اسکریپت شما بدون فایل لیسانس کار نکند
گزینه license API restriction را انتخاب کنید تا اسکریپت بدون فایل لیسانس هم کار بکند ولی میتوانید فایل لیسانس را داخل برنامه Load کنید و ازش استفاده کنید

مثلا نسخه نمایشی کار کنه و اگر فایل لیسانس بود بصورت کامل با تمام امکانات کار کند.


خب تا اینجا کارمون با انکود کردن تمام میشه و دکمه انکود را بزنید تا اسکریپت انکود بشود .

حالا در بالا زند کنار گزینه Encoding یک گزینه وجود دارد به اسم Licesnsing
وارد این قسمت بشوید

در اولین قسمت دقیقا اسم product name را بزنید که زمان انکود کردن وارد کنید.

در دومین قسمت یک گزینه به اسم additional license information وجود دارد شما در این قسمت می توانید با این فرمت پارامتر های خودتان را بزارید مثلا اسم برنامه نویس را بنویسید و یا متغییر هایی بزارید که باهاش محدودیت ایجاد کنید فرمتش به این صورت هست:
name=value
مثلا: domain=test.com

خب حالا این به چه دردی میخوره ؟ هر چیزی که شما در این فایل لیسانس بنویسید غیر قابل تغییر خواهد بود و کاملا قابل استناد هست مثلا وقتی من اون بالا زدم دامین = test.com میتونم توی برنامه ام چک کنم اگر دامین مساوی همین مقدار test.com بود کار کنه و اگر نبود نزاره روی دامین دیگه ای از اسکریپتم استفاده کنن

گزینه های دیگه برای تولید فایل لیسانس وجود داره مثل :
limit to ip اسکریپت شما را محدود به ip خاص میکنه و فقط روی سرور هایی با همین ip کار خواهد کرد
license expire به شما امکان میده مثلا سر یک تاریخ خاص اسکریپت از کار بیوفته یا تا یک تاریخ خاص فقط کار کنه بدرد فروش نسخه تست و نسخه نمایشی مثلا یکماه میخوره
limit to concurrect user این محدودیت رو اعمال میکنه که بصورت همزمان چند نفر از اسکریپت شما بتوانن استفاده کنند یعنی کاربران انلاین چند نفر باشه مثلا اگر بیشتر از 5 نفر شد کار نکنه

zend host id هم اسکریپت را روی یک دستگاه سرور خاص قفل میکنه ولی قبلش باید کد مخصوص اون دستگاه را با یک راه خیلی ساده تولید و بدست بیارید بعد داخل فایل لیسانس استفاده کنید.



خب حالا فایل را generate کنید و ذخیره کنید.

حالا اگر گزینه license file restriction را انتخاب کردید باید این فایل لیسانس تولید شده را بزارید داخل فولدری که مخصوص فایل های لیسانس هست آدرس این فولدر داخل تنظیمات php.ini هستش

اگر گزینه license API restriction را انتخاب کردید میتوانید فایل لیسانس را داخل برنامه با این تابع لود کنید:
PHP:
zend_loader_install_license("file_path");
$lic_info = zend_loader_file_licensed();
تابع اولی با ادرس فایل که بهش میدید فایل لیسانس را لود میکنه
تابعی که در خط دوم هست یک array برمیگردونه که تمام پارامتر های فایل لیسانس داخلشه



امیدوارم بتوانید از فایل لیسانس بهترین استفاده را برای محافظت از پروژه هاتون بکنید.
 

shahkey

Registered User
بهت گفتم که!
برو تو فروم خود زند بهشون راستشو بگو حتما کمکت میکنن!!!
ولی نگو ایرانی هستی!!!
 

alik

کاربر قدیمی پرشین تولز
مشکلم حل شد چون دیدم کسی راجبش چیزی نمیدونست گفتم شما هم یاد بگیرید بعدا من مشکل پیدا کردم میام میپرسم ازتون :)
 

siavashmusic

Registered User
دستت درد نکنه
اون مشکل قبلیت از چی بود ؟! متوجه شدی؟! بزار اینجا تا دوستان استفاده کنند
بازم ممنون از اموزشت
 

alik

کاربر قدیمی پرشین تولز
مشکل از سرور بودش برای امنیت بیشتر یکسری کارهایی کرده بودن که هربار لیسانس میپرید !!
روی دوتا سرور دیگه تست کردم مشکلی نداشت.
یک چیزی که در لیسانس زند هستش لود شدنش هست که یکبار لود میشه یعنی شما اگر از تابعی که برای لود کردن توسط api هست استفاده کنید یکبار چند ثانیه طول میکشه و لیسانس لود میشه و دفعات بعد اگر همون فایل را مجدد صدا کنید دیگه لود نمیشه و صرفا زند از لیسانسی که قبلا لود کرده استفاده میکنه حالا اگر فایل لیسانس را تغییر دادید و تغییرات را ریفرش کردید و ندیدید به خاطر همین هست

دو راه داره : apache را ری استارت کنید یا اینکه پارامتر دوم تابع api را 1 بزارید تا مجدد لیسانس را لود کنه


درضمن اگر از api برای لیسانس استفاده می کنید در هر فایلی که توی پروژه هست باید اول با دستورات api لیسانس را لود کنید که این کار را با include کردن یک فایل که شامل دستورات لود کردن لیسانس هست میتوانید راحت انجام بدید.
 

bahram.error

کاربر تازه وارد
من با zend کار نکردم.
ولی با خوندن گفته هاتون سوالاتی برام پیش آمده
1- منظور از encode کردن اسکریپت فقط encode کردن لیسانسه؟
2- اگر قرار باشه یک پروژه مختص به یک دامنه خاص باشه پس opensource چی میشه؟
3- من که دسترسی به php.ini ندارم آدرس فایلهای لیسانس رو از کجا بگیرم؟ ضمن اینکه ممکنه این پروژه من روی صدها سرور مختلف نصب و اجرا بشه.
4- .... :(

لطفاً کاملتر توضیح بدین.
یعنی پروژه ای مثل vBulletin رو میشه با یک فایل لیسانس بست. طوریکه کاربر ملزم بشه از خود ما بخرش؟
 

alik

کاربر قدیمی پرشین تولز
1- منظور از encode کردن اسکریپت فقط encode کردن لیسانسه؟
منظور از انکود کردن یعنی تمام فایل های php را کد کنید یا فایل هایی که در پروژه کلیدی هستند و پروژه بدون اون فایل ها کار نمیکنه را کد کنید. انکود کردن جدا از لیسانس هستش و فایل های انکود شده با توجه به تنظیماتی که بالا گفتم میتوانند بدون لیسانس هم استفاده بشن :) مثلا شما نمی خوای محدودیت خاصی بزاری ولی فقط میخواد کدهایی که نوشتی را دست کسی ندی صرفا ازش استفاده کنند .


2- اگر قرار باشه یک پروژه مختص به یک دامنه خاص باشه پس opensource چی میشه؟
کلا بحث ما این نیست صحبت ما استفاده از این قابلیت هست برای کسایی که نیاز دارند !
من هم به این اعتقاد دارم که هروقت لازم بود استفاده کنید نه اینکه دوخط برنامه نوشتید انکود کنید به کسی ندید :)


3- من که دسترسی به php.ini ندارم آدرس فایلهای لیسانس رو از کجا بگیرم؟ ضمن اینکه ممکنه این پروژه من روی صدها سرور مختلف نصب و اجرا بشه.
اگر دسترسی به php.ini ندارید از php info استفاده کنید به قسمت zend optimizer به روید و اونجا آدرس دایرکتوری فایل های لیسانس نوشته شده
شما میتوانید فایل لیسانس و اسکریپتتان را روی هزارتا سرور هم استفاده کنید فقط باید zend optimizer روی سرور نصب شده باشد

درصورتیکه کلا دسترسی دایرکتوری فایل های لیسانس ندارید از api برای load کردن فایل لیسانس استفاده کنید.

یعنی پروژه ای مثل vBulletin رو میشه با یک فایل لیسانس بست. طوریکه کاربر ملزم بشه از خود ما بخرش؟
صرفا نه پروژه ای که نام بردی چون من نمیتوانم راجبش نظر بدم ولی تا اونجایی که خودم استفاده کردم بله راحت میتوانید پروژه های بزرگ را با این روش لیسانس گذاری کنید .
کلا اعتبار شرکت Zend پشت این نرم افزار هستش و قیمت این نرم افزار هم بسیار گرون هستش و کسایی که میخرن حتما پروژه با ارزشی برای لیسانس گذاری دارند و پول بیخودی به شرکت zend نمیدن :)
 

alik

کاربر قدیمی پرشین تولز
مرسی از جوابها
فقط اینکه zend روی چند درصد سرورها نصب هست؟
تقریبا تا حالا هر سرور لینوکسی استفاده کردم zend optimizer داشته اگر هم نداشته باشد چون خیلی رایج هست فقط با یک ایمیل زدن براتان نصب میکنند.

alik جان شما ورژن زندت جنده؟
safe guard 4
 

Parsisoft

کاربر تازه وارد
ممکنه بخواهیم فایل حاوی کلاسمون رو encode کنیم ولی فایلی که از اون کلاس شی میسازه encode نباشه.
چی کار کنیم؟
آخه اگر کلاس encode باشه نمی تونه بخونش مگه اینکه خودش هم encode بشه:(
 
بالا