Symptoms

After applying WPB patch from KB 130312 site editing screen does not load, but displays the following error instead:

Site error: the file <..>/htdocs/include/SB/ConfigDefaults.php requires the ionCube PHP Loader ioncube_loader_lin_5.3.so to be installed by the website operator. If you are the website operator please use the ionCube Loader Wizard to assist with installation. 

On the node where WPB centralized instance resides one may see that IonCube extension is not loaded in sw-engine:

# php -m | grep ion
ionCube Loader

# sw-engine-cgi -m | grep ion
<no result>

Sw-engine is a special version of PHP interpreter which is required to run Web Presence Builder. IonCube is a PHP extension required to execute encrypted WPB scripts.

Cause

IonCube extension is not loaded by sw-engine interpreter. sw-engine is not compiled to scan additional directories and thus misses IonCube definition in /etc/php.d//etc/php.d/ioncube_loader.ini:

# php -i
...
Scan this dir for additional .ini files => /etc/php.d
Additional .ini files parsed
/etc/php.d/ioncube_loader.ini

# sw-engine -i
Scan this dir for additional .ini files => (none)
Additional .ini files parsed => (none)

Resolution

IonCube extension should be added to sw-engine by any possible way. There are several possibilities, for example:

  1. Via setting environment variable PHP_INI_SCAN_DIR to /etc/php.d. That could be done any applicable way on OS environment configuration level or via Apache's mod_env's SetEnv directive (for example, applicable to vhost config).

  2. Add the following line to /etc/php.ini:

    zend_extension=/usr/lib64/php/ioncube/ioncube_loader_lin_5.3.so
    

    And to overcome potential issues of double-initialization of ionCube in ordinary PHP, exclude original ionCube INI from initialization (since it will be forcibly initialized in PHP):

    # mv /etc/php.d/ioncube_loader.ini /etc/php.d/ioncube_loader.ini.bak
    

    That is safe and will not change the behavior of other webspaces.

Internal content