Official Mumble VoIP Forums

Brain exploding - please help with ICE

Ice/DBus, Web-Interfaces, Management tools
Okay, so I have been attempting to set up an ICE based Channel Viewer for nearly 12 hours now with no luck, and quite frankly, don't even know if I am close.

Background:

I am running a Mac with OSX 10.9
Have PHP 5.4.17
Have Apache 2.2.24
Have installed ICE from the website using the pre-made installer for 3.5.1
Have installed MySQL 5.6.15
Have installed Mumble, set up my server the way I would like, and have uncommented the ICE output path


Problem:

At this point I have been following the guide of rICE found here: http://mumble.sourceforge.net/Ice and have been following the guide for ICE 3.4 for Linux (General) found in section 2.1.

My background in web development, PHP, MySQL, and ICE are exactly zero prior to this point. I do not consider myself "computer dumb" and know a decent amount, but following this guide is more like attempting to find a lightswitch in the dark while inside of a 20,000 sq ft warehouse. I'm beyond lost as to what the ice.slice even is, where it's supposed to go, and where it is supposed to come from. The same applies with IcePHP.so. I have tried googling every possible thing I can think of but I am just outright lost at this point and my brain is beyond tired from trying to learn this.

Can anyone please please please help me out here? What do I do?!
You will not need the ice.slice setting any more, with your more recent versions of php and ice.

So, is ice available yet inside of php?
Check a file with
<?php phpinfo();
kissaki wrote:
You will not need the ice.slice setting any more, with your more recent versions of php and ice.

So, is ice available yet inside of php?
Check a file with
<?php phpinfo();


-SNIP-

I do not think ice is available within php as I have checked the extensions folder (and every single other folder anywhere near it as well) and don't see a single thing referring to ice anywhere. This is the main source of my frustration because I ran the installer but don't see a single sign of anything referring to ice anywhere.

EDIT:

I think I figured out your phpinfo deal by placing it in a .txt file and opening with my browser. There is a ton of info in there but after doing a command-F and searching for "ice" there were 0 results. If you would like I can try and copy/paste the entire contents for you here if you need it.
So you did not find a file named IcePHP.so ?
It was not provided by the installation?

I guess you downloaded the “OS X Installer” Ice-3.5.1.dmg?
The description lists “Everything needed to use Ice in C++, Java, and Python.” but not PHP.
So maybe they do not include binaries in the mac installer for PHP - unless PHP is included in “run-time libraries”.
kissaki wrote:
So you did not find a file named IcePHP.so ?
It was not provided by the installation?

I guess you downloaded the “OS X Installer” Ice-3.5.1.dmg?
The description lists “Everything needed to use Ice in C++, Java, and Python.” but not PHP.
So maybe they do not include binaries in the mac installer for PHP - unless PHP is included in “run-time libraries”.


Correct, I downloaded the OSX Installer and cannot find the IcePHP.so file anywhere whatsoever. After further digging, it appears that Ice for PHP is not officially supported by ZeroC with installers, however you can compile it from sources to work on the mac. I have found this guide: http://www.zeroc.com/forums/help-center/5096-ice-php.html to help me, but found it so late last night that I have not had the opportunity yet to follow the steps.

I also found a couple pages on the ZeroC documentation website about compiling and installing Ice for PHP on OSX, but cant find them right now (they are open on my laptop). Either way, I have never had to compile anything from sources ever before in my life, so this will certainly be a learning process and I certainly hope it works.

If I can ever manage to get this to work it will probably be the single greatest achievement of my life. I cannot EVER recall spending even half this much time on a computer problem without solving the issue. ARRRGH.

EDIT - The other two links were as follows:

http://doc.zeroc.com/display/Ice/Using+the+OS+X+Binary+Distribution
http://doc.zeroc.com/display/Ice/Building+Ice+for+PHP

I've also been using this post: http://doc.zeroc.com/pages/viewpage.action?pageId=5049479 to help with compiling from source.

All of this has so far led me absolutely nowhere as far as I can tell. I'm still completely lost and getting errors, but none of these pages describe exactly what to do when failures occur. :cry:
I am sorry for your bad experience.
Unfortunately, I’m not really familiar with the Mac ecosystem.

If, once you made it work, you could document your findings on our wiki, that would be great. Or even your current findings, that one will have to build from source. If the wiki is not clear about this it should probably be adjusted.

As for your compilation problems, maybe you want to join IRC and get more immediate help?
#mumble on freenode
If you do not have an IRC client you can also use webchat https://webchat.freenode.net/

mkrautz is our mac guru, maybe he can help you.
I asked him about IcePHP a few days ago, but he never used Ice with PHP on Mac.
Either way, if the compilation problems are generic, several people may be able to help. If they are mac specific, I'm sure someone will be there as well - at least mkrautz will be.
I'm having a hell of a time trying to install ICE-PHP as well.

I have a Linux CentOS 6 with cPanel & WHM.
Because of the cPanel & WHM installation I am unable to run yum install ice-php, since cPanel doesn't use yum for the PHP installation.
I have been able to extract IcePHP.so through using yum and then rebuilding my apache through the WHM, but when I move it to the apache folder it will not work with my version of PHP.

I have also tried to do a source build of Ice & IcePHP but I have had no luck with either.
Working with the latest Source Build: http://www.zeroc.com/download/Ice/3.5/Ice-3.5.1.zip

Currently I am trying to build Ice-3.5.1 and it is failing on:
making all in demo
make[1]: Entering directory `/builds/Ice-3.5.1/cpp/demo'
make[1]: *** No rule to make target `all'. Stop.
make[1]: Leaving directory `/builds/Ice-3.5.1/cpp/demo'
make: *** [all] Error 1

Trying to Make IcePHP:
[/builds/Ice-3.5.1/php]# make
make: *** No targets specified and no makefile found. Stop.

I also installed Ice-3.5.0 and was able to build the cpp as expected. Running "make" in the PHP folder always fails due to not being able to find the right PHP install folder.

Running: locate php.h
Returns:
/home/cpeasyapache/src/php-5.4.24/main/php.h
/usr/local/cpanel/3rdparty/php/53/include/php/main/php.h
/usr/local/include/php/main/php.h

Following: http://headup.ws/node/5

I tried PHP_HOME=/usr/local/
as well as a bunch of other folders with the returned options and none seem to work.


I noticed on the Platform Page: http://www.zeroc.com/platforms_3_5_1.html
That IcePHP is only supported with PHP v. 3.* ?? Does this mean it wont work with any newer versions?


Any help would be greatly appreciated!

*** UPDATE:

I was finally able to build it by setting export PHP_HOME=/usr/local/ the conf/Make.rules.php doesn't work as i'd expected.
I also had to set LD_LIBRARY_PATH=/opt/Ice-3.5.0/lib64 (instead of the lib file they suggested - located libIce.so.35 with ls -LR $ICE_HOME - Reference: http://www.zeroc.com/forums/help-center ... panel.html)

After I make && make install IcePHP.so appeared in $ICE_HOME/php so I copied it to the PHP Module Extensions


Currently:
I have:
[/builds/Ice-3.5.0/php]# ldd /usr/local/lib/php/extensions/no-debug-non-zts-20100525/IcePHP.so
linux-vdso.so.1 => (0x00007fff546cf000)
libIce.so.35 => /opt/Ice-3.5.0/lib64/libIce.so.35 (0x00007ff2d5213000)
libSlice.so.35 => /opt/Ice-3.5.0/lib64/libSlice.so.35 (0x00007ff2d4d97000)
libIceUtil.so.35 => /opt/Ice-3.5.0/lib64/libIceUtil.so.35 (0x00007ff2d4b1e000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ff2d48f5000)
librt.so.1 => /lib64/librt.so.1 (0x00007ff2d46ec000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007ff2d43e6000)
libm.so.6 => /lib64/libm.so.6 (0x00007ff2d4162000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007ff2d3f4b000)
libc.so.6 => /lib64/libc.so.6 (0x00007ff2d3bb7000)
libbz2.so.1 => /lib64/libbz2.so.1 (0x00007ff2d39a6000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007ff2d37a1000)
/lib64/ld-linux-x86-64.so.2 (0x0000003441800000)
[/builds/Ice-3.5.0/php]# service httpd restart


But in My Apache Error Log I still get:
[03-Feb-2014 08:00:55 UTC] PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/extensions/no-debug-non-zts-20100525/IcePHP.so' - libIce.so.35: cannot open shared object file: No such file or directory in Unknown on line 0

Even tho it clearly exists:
[/builds/Ice-3.5.0/php]# ls /opt/Ice-3.5.0/lib64/libIce.so.35
/opt/Ice-3.5.0/lib64/libIce.so.35@

Anyone have any ideas? I have done an apache restart.

**** UPDATE COMPLETED

So I found a few issues I had:

1. I had the extension=IcePHP.so at the top of the php.ini instead of at the bottom (which made it not load properly)
2. edit the export = in your ~/.bash_profile:

LD_LIBRARY_PATH=/opt/Ice-3.5.0/lib64
export LD_LIBRARY_PATH

ICE_HOME=/opt/Ice-3.5.0/
export ICE_HOME


IF you don't edit it here, when you signout & back in the settings are gone.

3. I missed a step in the mumble docs: http://mumble.sourceforge.net/Ice
Basically you need to edit the PHP.ini include_path to: include_path = ".:/usr/lib/php:/usr/local/lib/php:/opt/Ice-3.5.0/lib"

After 3 Days of attempting to get this to work, I finally have it!
Also having a major issue with Ice and CentOS 6:

following the instructions on http://mumble.sourceforge.net/Install_CentOS6
Running CENTOS 6.5 x86_64 with WHM11.42.1
PHP version: 5.4.27
I have already tried following the instructions and STILL cannot see Ice.
When I try and re-do the instructions I get the following:

1

Code: Select all

rpm -ivh http://ftp-stud.hs-esslingen.de/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

result:

Code: Select all

Retrieving http://ftp-stud.hs-esslingen.de/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
Preparing...                ########################################### [100%]
        package epel-release-6-8.noarch is already installed


2

Code: Select all

wget --directory-prefix=/etc/yum.repos.d/ http://zeroc.com/download/Ice/3.5/el6/zeroc-ice-el6.repo

Result:

Code: Select all

--2014-04-30 19:33:07--  http://zeroc.com/download/Ice/3.5/el6/zeroc-ice-el6.repo
Resolving zeroc.com... 184.73.227.248
Connecting to zeroc.com|184.73.227.248|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://download.zeroc.com/Ice/3.5/el6/zeroc-ice-el6.repo [following]
--2014-04-30 19:33:07--  http://download.zeroc.com/Ice/3.5/el6/zeroc-ice-el6.repo
Resolving download.zeroc.com... 54.230.8.37, 54.230.9.60, 54.230.11.25, ...
Connecting to download.zeroc.com|54.230.8.37|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 212 [text/plain]
Saving to: “/etc/yum.repos.d/zeroc-ice-el6.repo.2”

100%[======================================>] 212         --.-K/s   in 0s

2014-04-30 19:33:07 (12.6 MB/s) - “/etc/yum.repos.d/zeroc-ice-el6.repo.2” saved [212/212]


3.

Code: Select all

yum install avahi-compat-libdns_sd qt qt-sqlite ice-libs protobuf


result:

Code: Select all

Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
 * base: mirror.mhd.uk.as44574.net
 * epel: epel.check-update.co.uk
 * extras: mirror.mhd.uk.as44574.net
 * updates: mirror.synergyworks.co.uk
Setting up Install Process
Package avahi-compat-libdns_sd-0.6.25-12.el6.x86_64 already installed and latest version
Package 1:qt-4.6.2-28.el6_5.x86_64 already installed and latest version
Package 1:qt-sqlite-4.6.2-28.el6_5.x86_64 already installed and latest version
Package ice-libs-3.5.1-1.el6.x86_64 already installed and latest version
Package protobuf-2.3.0-7.el6.x86_64 already installed and latest version
Nothing to do


4.

Code: Select all

rpm -ivh https://www.dropbox.com/s/wla29wnabsz53nq/mumble-server-1.2.4-1.el6.x86_64.rpm


Mumble server is installed to /etc/mumble-server/ and running fine
dbus is commented out in mumble-server.ini

Code: Select all

ice="tcp -h 127.0.0.1 -p 6502"
is uncommented and if I do
netstat -apn | grep 6502

then I get :

Code: Select all

tcp        0      0 127.0.0.1:6502              0.0.0.0:*                   LISTEN      2193/murmurd


I cannot however find anywhere the IcePHP.so or murmur.ice anywhere on my system so I cannot include them in my php.ini in order to get it working.
IcePHP.so SHOULD be in my /usr/local/lib/php/extensions/no-debug-non-zts-20100525/ but is not.
ANY pointers at all on how to fix this shizz ??
The issue is that the IcePHP.so was created with a different version of PHP. You have to create and compile it from source if you want to get it working. I am not quite sure which version of PHP my version was created in, but I think it is for Ice-3.5.1 and PHP 5.4.27 or 5.4.28 on CentOS 6. If nothing else, you can try to see if it will work for you.

https://www.dropbox.com/s/gycfrn56n0dj4md/IcePHP.so