• Our team is looking to connect with folks who use email services provided by Plesk, or a premium service. If you'd like to be part of the discovery process and share your experiences, we invite you to complete this short screening survey. If your responses match the persona we are looking for, you'll receive a link to schedule a call at your convenience. We look forward to hearing from you!
  • The BIND DNS server has already been deprecated and removed from Plesk for Windows.
    If a Plesk for Windows server is still using BIND, the upgrade to Plesk Obsidian 18.0.70 will be unavailable until the administrator switches the DNS server to Microsoft DNS. We strongly recommend transitioning to Microsoft DNS within the next 6 weeks, before the Plesk 18.0.70 release.
  • The Horde component is removed from Plesk Installer. We recommend switching to another webmail software supported in Plesk.

Resolved Cron error - Ioncube loader

alinthda

New Pleskian
Hello everyone,

Since an update of plesk (17.8.11 n ° 6), I receive cron emails about ioncube:


From: root@xxx.xxx.x.x (Cron Daemon)
To: root@xxx.xxx.x.x


Subject: [ -x /usr/lib/php5/maxlifetime ] && [ -x /usr/lib/php5/sessionclean ] && [ -d /var/lib/php5 ] && /usr/lib/php5/sessionclean /var/lib/php5 $(/usr/lib/php5/maxlifetime)

Failed loading /usr/lib/php5/20121212/ioncube_loader_lin_7.0.so: /usr/lib/php5/20121212/ioncube_loader_lin_7.0.so: undefined symbol: zend_ce_division_by_zero_error
Failed loading /usr/lib/php5/20121212/ioncube_loader_lin_7.0.so: /usr/lib/php5/20121212/ioncube_loader_lin_7.0.so: undefined symbol: zend_ce_division_by_zero_error
Failed loading /usr/lib/php5/20121212/ioncube_loader_lin_7.0.so: /usr/lib/php5/20121212/ioncube_loader_lin_7.0.so: undefined symbol: zend_ce_division_by_zero_error



My system:
-Ubuntu server 14.04
- Plesk onyx 17.8.11 n ° 6

If anyone can help me, thanks in advance
and sorry for my bad English :)
 
Try to fix it with command

# dpkg-reconfigure php5-ioncube-loader
 
I already tried, it does not work.
But, The problem just disappeared by updating ubuntu 14.04 => 16.04
 
I've got nearly the same error, but was not able to upgrade the server 14.04 => 16.04 at the moment. Therefore I had to investigate a little bit. Now I want to tell the solution that works for me. Perhaps it may be helpful for someone other.

Short version:
Cause of the error is a mismatch between used php-version and ioncube-version given by php.ini thru maintenance script.
Changed the script in /usr/lib/php/maxlifetime to use the command 'php' instead of 'php5' solved the issue.

Long version - The whole story in detail:
Behavior:
The error was shown ONLY by cron-service. Normal php-operations from commandline or web-pages are all ok without errors.
php -v shows me that php 7.1 is working and normal ioncube loading without problems:

$ php -v
PHP 7.1.20 (cli) (built: Jul 20 2018 16:08:02) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
with the ionCube PHP Loader (enabled) + Intrusion Protection from ioncube24.com (unconfigured) v10.2.1, Copyright (c) 2002-2018, by ionCube Ltd.
with Zend OPcache v7.1.20, Copyright (c) 1999-2018, by Zend Technologies


But testing the script /usr/lib/php/maxlifetime at commandline gives the same error like the cron-script:
$ /usr/lib/php5/maxlifetime
Failed loading /usr/lib/php5/20121212/ioncube_loader_lin_7.1.so: /usr/lib/php5/20121212/ioncube_loader_lin_7.1.so: undefined symbol: zend_interrupt_function
Failed loading /usr/lib/php5/20121212/ioncube_loader_lin_7.1.so: /usr/lib/php5/20121212/ioncube_loader_lin_7.1.so: undefined symbol: zend_interrupt_function
Failed loading /usr/lib/php5/20121212/ioncube_loader_lin_7.1.so: /usr/lib/php5/20121212/ioncube_loader_lin_7.1.so: undefined symbol: zend_interrupt_function
24


Why get (nearly) nobody else this error? And why he disappeared after system-upgrade as shown above?
This is because I - and perhaps User alinthda too - had before manual changed the php-version used at the commandine.

Plesk stores its own php installations in /opt/plesk/php/{version} and in the GUI it is possible to choose one of them for the virtual-host-config.
At the commandline is normally not the plesk version, but the OS-Vendor-version active. For ubuntu 14.04 it was some sort of php5.
But to use composer at cli for my drupal installation, the php-version at cli have to match the version at the virtuall host to avoid that composer loads wrong libraries and the site crashes.

In ubuntu 14.04 the /usr/bin/php command is not the command itself, but a symlink at /etc/alternatives/php, which again is a symlink at /usr/bin/php5.
Therefore, if you type php, the system calls /usr/bin/php5.
I had changed this with a symlink to plesk's php 7.1, which was used for the virtual host.
# ln -s /opt/plesk/php/7.1/bin/php /etc/alternatives/php

The maintenance-script /usr/lib/php5/maxlifetime don't use the long way /usr/bin/php => /etc/alternatives/php => /usr/lib/php5 but calls php5 directly. It goes wrong, because this do not respect the new target of the php command and the ini-files now are for the 7.1 version.

Line 8 of /usr/lib/php5/maxlifetime in original is:
cur=$(php5 -c /etc/php5/${sapi}/php.ini -d "error_reporting='~E_ALL'" -r 'print ini_get("session.gc_maxlifetime");')

Now I removed the first number 5:
cur=$(php -c /etc/php5/${sapi}/php.ini -d "error_reporting='~E_ALL'" -r 'print ini_get("session.gc_maxlifetime");')

therefore the command goes the long way via /etc/alternatives and calls /opt/plesk/php/7.1/bin/php, wich match php.ini for 7.1 and command-version 7.1, and ioncube-loader for 7.1 is happy again.
Issue solved.

Hopefully my manipulation will not cause other side effects. At the moment I cannot se some.
 
Back
Top