New Features
- Zend Guard 7 supports PHP 5.5 and 5.6
- For PHP 5.3 and 5.4, please download and install Zend Guard 6.
Installation Instructions
Windows
- Double-click on the self-extracting archive.
- Follow the instructions in the automated installation wizard.
Linux
- Extract the downloaded
tar.gz
file:tar xzvf filename.tar.gz
- As soon as the extraction is done, run the ZendGuard executable in the main folder.
Mac
- Open the downloaded
.dmg
file by double-clicking on it. - Copy Zend Guard to Applications by dragging the Zend Guard icon and dropping it on the Applications icon.
System Requirements
- Linux x86
- Linux x86-64 with 32 bit libraries installed
- Windows x86 7 / 8.1 / 2008R2
- Windows x86-64 7 / 8.1 / 2008R2
- Mac OS X 10.10
Limitations and Known Issues
General
- Encoded and obfuscated applications are compatible only with the same PHP version they were encoded with.
- Files created using the Mac version of Zend Guard will only work on Mac and Linux 64-bit systems. For distributing encoded software, we recommend using either the Windows or Linux versions of Zend Guard instead.
Encoding
- Relative names do not work with
--ignore
and--exclude-file
- Using inexact file names (different cases,
/
instead of\\
, or not full paths) does not work with--ignore
and--exclude-file
(Windows only) - "Work only with encoded files" option does not work if it is not applied for all files
- Extending
stdClass
gives a blank output when a file is encoded
Obfuscation
- Using
mbstring.func_overload
with obfuscation requires exporting functions that are overloaded. - Implementing PHP interfaces (such as
Iterator
) requires exporting interface methods - Autoloading does not work for obfuscated classes (due to different class names)
- Obfuscating class and function names can break any code that accesses a function by string, such as calling a variable function like
$func()
, or calling a PHP internal function to access a class/function as a variable, such ascall_user_func($func)
, etc. -
--export-php
may not automatically export some SPL iterator classes
Zend Guard Loader (PHP Runtime Module)
-
Extract the Zend Loader package that corresponds with your PHPversion and OS arch (the package also contains an OPcache binary).
-
Place the ZendGuardLoader and OPcache binaries in your filesystem.
-
Add the following lines to your
php.ini
file for loading the ZendGuardLoader:-
Linux and Mac OS X:
zend_extension= zend_extension=
-
Windows non-thread safe:
zend_extension= zend_extension=
-
Note: The supplied OPcache replaces your current OPcache binary in order to allow correct extension loading.
-
Note: Execute the Loader command first
-
-
Optional: Add an additional line to your
php.ini
for enabling ZendGuardLoader; Enables loading encoded scripts. The default value is On zend_loader.enable=1
-
Optional: the following lines can be added your
php.ini
file for ZendGuardLoader configuration:; Disable license checks (for performance reasons) zend_loader.disable_licensing=0 ; The Obfuscation level supported by Zend Guard Loader. The levels are detailed in the official Zend Guard Documentation. 0 - no obfuscation is enabled zend_loader.obfuscation_level_support=3 ; Path to where licensed Zend products should look for the product license. For more information on how to create a license file, see the Zend Guard User Guide zend_loader.license_path=
-
Restart your web server.
-
Check that loader and OPcache are both loaded using phpinfo() ) or php -v.
-
Run your encoded files.
Installing Zend Guard Loader on top of Zend Server 8.0.2
Linux/Mac
-
Extract the Zend Loader package that corresponds with your PHP version and OS arch.
-
Locate the
/usr/local/zend/lib/php_extensions
folder and overwriteopcache.so
while adding inZendGuardLoader.so
-
Open your
/usr/local/zend/etc/conf.d/opcache.ini
file. -
Before the directive
zend_extension=/usr/local/zend/lib/php_extensions/opcache.so
, add the following line (at the very beginning of the file):zend_extension=/usr/local/zend/lib/php_extensions/ZendGuardLoader.so
-
Restart Zend Server (
/usr/local/zend/bin/zendctl.sh
restart). -
If all is well,the Zend Guard Loader section will be present on the Overview -> Server Info page
Windows
-
Extract the Zend Loader package that corresponds with your PHP version and OS arch.
-
Locate the
C:\Program Files (x86)\Zend\ZendServer\lib\phpext
folder, and overwritephp_opcache.dll
while adding inZendLoader.dll
. -
Open your
php.ini
file. -
Locate the OPcache section starting with the directive
zend_extension="C:\Program Files (x86)\Zend\ZendServer\lib\phpext\php_opcache.dll"
. Add the following line into yourphp.ini
file just before the located opcache directive (at the very beginning of OPcache section):zend_extension="C:\Program Files (x86)\Zend\ZendServer\lib\phpext\ZendLoader.dll"
-
Restart Zend Server.
-
Restart apache from apache monitor
-
If all is well,the Zend Guard Loader section will be present on the Overview -> Server Info page