Kissaki / MumPI

A Webinterface for Mumble Server. Written in PHP, using Ice middleware.
http://kissaki.github.io/MumPI/
Other
105 stars 30 forks source link

Fatal Error using PHP7 #65

Open Frop2 opened 8 years ago

Frop2 commented 8 years ago
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/
Kissaki commented 8 years ago

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

Frop2 commented 8 years ago

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.

Kissaki commented 7 years ago

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

Kissaki commented 7 years ago

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 commented 7 years ago

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 commented 7 years ago

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 commented 7 years ago

As per own FAQ

Kissaki commented 7 years ago

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 commented 7 years ago

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…