MumPI icon indicating copy to clipboard operation
MumPI copied to clipboard

Fatal Error using PHP7

Open Frop2 opened this issue 8 years ago • 9 comments

PHP Fatal error:  Uncaught RuntimeException: no definition found for class or interface ::Murmur::Meta in /var/www/html/MumPI/classes/Murmur_1.2.4.php:1188
Stack trace:
#0 /var/www/html/MumPI/classes/Murmur_1.2.4.php(1188): Ice_ObjectPrx->ice_checkedCast('::Murmur::Meta', NULL, NULL)
#1 /var/www/html/MumPI/classes/ServerInterface.php(120): Murmur_MetaPrxHelper::checkedCast(Object(Ice_ObjectPrx))
#2 /var/www/html/MumPI/classes/ServerInterface.php(68): ServerInterface_ice->initIce34()
#3 /var/www/html/MumPI/classes/ServerInterface.php(41) : eval()'d code(1): ServerInterface_ice->__construct()
#4 /var/www/html/MumPI/classes/ServerInterface.php(41): eval()
#5 /var/www/html/MumPI/admin/index.php(28): ServerInterface::getInstance()
#6 {main}
  thrown in /var/www/html/MumPI/classes/Murmur_1.2.4.php on line 1188, referer: http://localhost/MumPI/install/

Frop2 avatar Oct 23 '16 19:10 Frop2

You want support or sth? A lil more info maybe?

Kissaki avatar Oct 23 '16 22:10 Kissaki

After succesful installation I got a message that I needed to install PHP-Ice, so I had to compile the ice extension from source because Linux Mint did not have an ice package for PHP in the repository. In phpinfo() ice is listed and apparently working OK. Then I tried to load the MumPI page and the user/ and admin/ gave blank pages and this fatal error in the error log of Apache. I tried reinstall of MumPI, installation was successful, then redirect to user/ or admin/ gave a blank page again with the same error.

Frop2 avatar Oct 24 '16 18:10 Frop2

Ubuntu 16.04 LTS does not provide the php-zeroc-ice package either.

Kissaki avatar Jan 21 '17 16:01 Kissaki

Ubuntu 16.04 packages Ice3.5, which uses slice2php to generate PHP classes from the ice definitions.

The package ice35-translators provides the slice2php binary, the package ice35-slice the required base slice files.

Then, slice2php can be used to generate Murmur.php from Murmur.ice.

apt-get install ice35-translators ice35-slice
slice2php -I/usr/share/Ice-3.5.1/slice/ Murmur.ice

For Ubuntu 16.10 the slice2php binary is packaged in zeroc-ice-compilers.

Kissaki avatar Jan 21 '17 17:01 Kissaki

A generated file is provided in MumPI/classes/ for 1.2.x and 1.3.0snap.

Commenting out the requirement for the PHP Ice extension, and the Ice.php include file, it still requires the Ice/SliceChecksumDict.php, which is missing. Even upon generating a new Murmur.php on 16.04.

Kissaki avatar Jan 21 '17 17:01 Kissaki

The slice2php doc describes slice inclusion. With the --all parameter, included slice files are translated as well.

However:

slice2php --all -I/usr/share/Ice-3.5.1/slice/ Murmur.ice
/usr/share/Ice-3.5.1/slice/Ice/SliceChecksumDict.ice:14: illegal identifier `Ice': `Ice' prefix is reserved

Kissaki avatar Jan 21 '17 17:01 Kissaki

As per own FAQ

  • https://github.com/Kissaki/MumPI/wiki/FAQ#i-keep-getting-php-fatal-error-require_once-failed-opening-required-icephp-include_path-in-varwwwmumpiclassesserverinterfacephp-on-line-6
  • https://github.com/Kissaki/MumPI/wiki/FAQ#how-to-generate-a-murmurphp-file-from-the-murmurice-slice-file

Kissaki avatar Jan 21 '17 17:01 Kissaki

Removing the SliceChecksumDict requirement, the Murmur.php file fails when trying to call IcePHP_defineSequence. This is defined in Ice php/src/IcePHP, which looks like the PHP extension.

So I guess the php extension is required after all. But not provided. What a hassle.

Kissaki avatar Jan 21 '17 18:01 Kissaki

ZeroC provides their own deb repo at http://zeroc.com/download/apt/ubuntu$(lsb_release -rs) (see https://zeroc.com/distributions/ice and https://doc.zeroc.com/display/Ice36/Using+the+Linux+Binary+Distributions ) but that does not seem to contain the package, and when trying to install this in a docker image to inspect it failed for me…

Kissaki avatar Jan 21 '17 18:01 Kissaki