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 as call_user_func($func), etc.
  • --export-php may not automatically export some SPL iterator classes

Zend Guard Loader (PHP Runtime Module)

  1. Extract the Zend Loader package that corresponds with your PHPversion and OS arch (the package also contains an OPcache binary).

  2. Place the ZendGuardLoader and OPcache binaries in your filesystem.

  3. 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

  4. 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
    
  5. 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=
    
  6. Restart your web server.

  7. Check that loader and OPcache are both loaded using phpinfo() ) or php -v.

  8. Run your encoded files.

Installing Zend Guard Loader on top of Zend Server 8.0.2

Linux/Mac
  1. Extract the Zend Loader package that corresponds with your PHP version and OS arch.

  2. Locate the /usr/local/zend/lib/php_extensions folder and overwrite opcache.so while adding in ZendGuardLoader.so

  3. Open your /usr/local/zend/etc/conf.d/opcache.ini file.

  4. 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
    
  5. Restart Zend Server (/usr/local/zend/bin/zendctl.sh restart).

  6. If all is well,the Zend Guard Loader section will be present on the Overview -> Server Info page

Windows
  1. Extract the Zend Loader package that corresponds with your PHP version and OS arch.

  2. Locate the C:\Program Files (x86)\Zend\ZendServer\lib\phpext folder, and overwrite php_opcache.dll while adding in ZendLoader.dll.

  3. Open your php.ini file.

  4. 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 your php.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"
    
  5. Restart Zend Server.

  6. Restart apache from apache monitor

  7. If all is well,the Zend Guard Loader section will be present on the Overview -> Server Info page