ionCube loader یک افزونه PHP است که برای بارگذاری امن و محافظت‌شده فایل‌ها با نرم‌افزار ionCube Encoder مورد استفاده قرار می‌گیرد. این همان ابزاری است که بیشتر در کاربردهای تجاری و به منظور دور نگه داشتن سورس‌کد از دید دیگران به کار برده می‌شود. در این مطلب، نحوه نصب و تنظیم ماژول ionCube Loader را در توزیع‌های لینوکس دبیان و اوبونتو بررسی خواهیم کرد.

پیش‌نیازها

یک سرور اوبونتو یا دبیان در حال اجرا با یک وب‌سرور (آپاچی یا Nginx) همراه با نصب PHP. درصورتی که وب‌سرور یا PHP را بر روی سیستم نصب نکرده‌اید، می‌توانید آنها را با استفاده از برنامه مدیریت بسته‌های apt، به شکلی که در ادامه نشان داده شده، نصب کنید.

گام ۱) نصب وب‌سرور آپاچی یا Nginx همراه با PHP

۱) در صورتی که وب‌سرور آپاچی یا Nginx را در حال اجرا با نصب PHP در سیستم‌تان دارید، می‌توانید مستقیماً به مرحله بعد بروید. در غیر این صورت، با استفاده از فرمان apt آنها را نصب کنید.


-------------------- Install Apache with PHP --------------------

$ sudo apt install apache2 php7.0 php7.0-fpm php7.0-cli

 

-------------------- Install Nginx with PHP --------------------

$ sudo apt install nginx php7.0 php7.0-fpm php7.0-cli

۲) پس از نصب وب‌سرور همراه با PHP در سیستم، می‌توانید وب‌سرور را اجرا و با استفاده از فرمان‌های زیر، آن را به گونه‌ای تنظیم کنید که بلافاصله بعد از شروع به کار سیستم، به صورت خودکار فعال شود.


-------------------- Start Apache Web Server --------------------

$ sudo systemctl start apache2

$ sudo systemctl enable apache2

 

-------------------- Start Nginx + PHP-FPM Server --------------------

$ sudo systemctl start nginx

$ sudo systemctl enable nginx

$ sudo systemctl start php7.0-fpm

$ sudo systemctl enable php7.0-fpm

گام ۲) دریافت ماژول ionCube Loader

۳) به وب‌سایت ionCube بروید و فایل‌های نصب آن را دریافت نمایید. امّا قبل از این کار، باید بدانید که توزیع لینوکس شما بر روی کدامیک از بسترهای ۶۴ یا ۳۲ بیتی اجرا می‌شود.


$ uname -r

Linux TecMint 4.4.0-21-generic #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

خروجی بالا به‌وضوح نشان می‌دهد که سیستم در حال اجرا بر روی یک بستر ۶۴ بیتی است.

نسب به بستر و توزیع لینوکسی که در اختیار دارید، فایل‌های ماژول ionCube Loader را به دایرکتوری /tmp دریافت کنید. مطابق معمول، این کار را با استفاده از فرمان wget انجام می‌دهیم.


-------------------- For 64-bit System --------------------

$ cd /tmp

$ wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz

 

-------------------- For 32-bit System --------------------

$ cd /tmp

$ wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz

۴) سپس با استفاده از فرمان tar، فایل‌های دریافت‌شده را از حالت فشرده خارج کنید و به سراغ پوشه آنها روید. در ادامه، از فرمان ls به منظور لیست‌کردن فایل‌های ماژول ionCube Loader برای نسخه‌های مختلف PHP استفاده می‌کنیم.


$ tar -zxvf ioncube_loaders_lin_x86*

$ cd ioncube/

$ ls -l

فایل‌های ماژول ionCube Loader

فایل‌های ماژول ionCube Loader

گام ۳) نصب ماژول ionCube Loader برای PHP

۵) در اسکرین‌شات بالا فایل‌های مختلف ماژول ionCube Loader را می‌بینید که برای نسخه‌های متفاوت PHP هستند. در اینجا باید نسخه متناسب با نسخه نصب‌شده PHP در سرور خود را انتخاب کنید. برای دانستن نسخه PHP سرور، از فرمان زیر استفاده کنید.


$ php -v

بررسی نسخه PHP در اوبونتو

بررسی نسخه PHP در اوبونتو

اسکرین‌شات بالا به روشنی نشان می‌دهد که سیستم از PHP نسخه 7.0.25 استفاده می‌کند. با این وجود، ممکن است در سیستم شما نسخه متفاوتی نصب شده باشد.

۶) در ادامه، موقعیت دایرکتوری extension را برای PHP نسخه 7.0.25 پیدا کنید. این همان جایی است که فایل‌های ionCube Loader نصب خواهند شد.


$ php -i | grep extension_dir

extension_dir => /usr/lib/php/20151012 => /usr/lib/php/20151012

۷) سپس باید ionCube Loader را برای نسخه PHP 7.0.25 در دایرکتوری extension یعنی /usr/lib/php/20151012 کپی کنیم.


$ sudo cp /tmp/ioncube/ioncube_loader_lin_7.0.so /usr/lib/php/20151012

نکته: حتماً دقت کنید که نسخه PHP و دایرکتوری extension را مطابق با تنظیمات سیستم خودتان در فرمان بالا جایگزین کنید.

گام ۴) تنظیم ماژول ionCube Loader برای PHP

۸) اکنون باید ionCube Loader را به‌گونه‌ای تنظیم کنیم که با PHP کار کند. این کار را در فایل php.ini انجام می‌دهیم. به خاطر داشته باشید که دبیان و اوبونتو از فایل‌های متفاوت php.ini برای PHP CLI و PHP-FPM استفاده می‌کنند.


$ sudo vi /etc/php/7.0/cli/php.ini                             #for PHP CLI

$ sudo vi /etc/php/7.0/fpm/php.ini                         #for PHP-FPM & Nginx

$ sudo vi /etc/php/7.0/apache2/php.ini                        #for Apache2

حالا خط زیر را به عنوان خط اول در فایل php.ini مربوطه اضافه کنید.


zend_extension = /usr/lib/php/20151012/ioncube_loader_lin_7.0.so

نکته: حتماً دقت کنید که نسخه PHP و دایرکتوری extension را مطابق با تنظیمات سیستم خودتان جایگزین نمایید.

۹) حالا فایل را ذخیره کرده و از آن خارج شوید. سپس باید وب‌سرور آپاچی یا Nginx را دوباره راه‌اندازی کنیم تا ماژول ioncube loader فعال شود.


-------------------- Start Apache Web Server --------------------

$ sudo systemctl restart apache2

-------------------- Start Nginx + PHP-FPM Server --------------------

$ sudo systemctl restart nginx

$ sudo systemctl restart php-fpm

گام ۵) تست ionCube Loader

۱۰) حالا نوبت آن است که نصب صحیح ماژول ionCube loader را بررسی کنیم. در اینجا یک بار دیگر نسخه PHP را تست می‌کنیم که در پاسخ باید مشاهده کنیم که این ابزار به همراه افزونه ioncube loader نصب و تنظیم شده است.


$ php -v

 

PHP 7.0.25-0ubuntu0.16.04.1 (cli) ( NTS )

Copyright (c) 1997-2017 The PHP Group

Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies

with the ionCube PHP Loader (enabled) + Intrusion Protection from ioncube24.com (unconfigured) v10.2.0, Copyright (c) 2002-2018, by ionCube Ltd.

with Zend OPcache v7.0.25-0ubuntu0.16.04.1, Copyright (c) 1999-2017, by Zend Technologies

به این ترتیب، کار ما در اینجا به پایان می‌رسد. برای تأمین امنیت فایل های PHP نیاز به نصب و تنظیم ماژول IonCube loader خواهید داشت. امیدواریم که این آموزش را نیز بدون هیچ مشکلی به انتها رسانده باشید.