Home Help Center

Problem With CentOS 5.6

seraphkzseraphkz Member Kevin ZhaoOrganization: New EmberProject: New Ember
So I'm having a little problem getting ICE to work on CentOS 5.6. Hopefully someone can help. I'm trying to set up Mumb1e (Mumble/Murmur's admin control panel)

1) I've installed LAMP, and ice-php through ZeroC's repo.
2) Changed /usr/local/lib/php.ini, changed the line to:
extension_dir = /usr/lib64/php/modules/
3) Then I /etc/php.d/ice.ini to
extension=IcePHP.so
ice.slice = -I/usr/share/Ice-3.3.1/slice /home/admin/murmur/Murmur.ice
4) Changed murmur.ini to use ICE.
5) Start murmur.x86 with mySQL, everything works.
6) Go set up control panel (on website), then I get this:
Fatal error: Call to undefined function Ice_loadProfile() in /home/admin/domains/newember.com/public_html/murmur/inc/resources/php/slice.php on line 38


Could someone please help? Or if anyone can help set it up, I'm willing to pay a little support fee. Thanks.

Comments

  • mesmes CaliforniaAdministrators, ZeroC Staff Mark SpruiellOrganization: ZeroC, Inc.Project: Ice Developer ZeroC Staff
    Hi Kevin,

    Welcome to the forum.

    This is a common problem for Mumble users. The issue is that the Mumble code you are using is written using an older version of Ice for PHP (specifically, Ice 3.3 and earlier). The Ice for PHP APIs changed significantly in the 3.4 release. Unless Mumble has been updated accordingly, you'll have to continue using Ice 3.3. If you're using the latest Mumble release, I think it's safe to assume that it hasn't been updated for Ice 3.4. The simplest solution in that case is to uninstall Ice 3.4 and install Ice 3.3 instead.

    Please note that we don't provide support for Mumble; you'll have to get in touch with the Mumble developers if you have questions that aren't related to Ice.

    Hope that helps,
    Mark
  • seraphkzseraphkz Member Kevin ZhaoOrganization: New EmberProject: New Ember
    Thanks for the response, I really appreciate it.

    Thing is, when i run yum list ice-*, I get the versions 3.3.1
    Which means I am running on ICE 3.3.1

    Thanks regardless, if anyone has more insights into this, please help.


    Kevin
  • mesmes CaliforniaAdministrators, ZeroC Staff Mark SpruiellOrganization: ZeroC, Inc.Project: Ice Developer ZeroC Staff
    Ok, if you're sure you've got Ice 3.3.x installed, then it's also possible that the Ice extension (IcePHP.so) isn't being loaded by PHP. There are several possible reasons for this, the simplest being that PHP isn't yet configured to load the extension, or perhaps PHP isn't finding the Ice shared libraries required by the extension.

    Here's a simple test: In a command shell window, run

    % php -m

    This shows all of the extensions that are configured into PHP. If you don't see an entry for "ice", then this explains why the Ice_loadProfile function isn't being found, as this function will only be available when the Ice extension is loaded.

    Note that the ice-php RPM installs /etc/php.d/ice.ini, which should automatically load the Ice extension into PHP.

    Regards,
    Mark
  • seraphkzseraphkz Member Kevin ZhaoOrganization: New EmberProject: New Ember
    Thanks for the response once again, your help is greatly appreciated.

    I did php -m, and i did not see Ice being listed.

    Should I change php.ini's line
    extension_dir = /usr/lib64/php/modules/
    back to what it was before? which was
    extension_dir = "./"

    I don't understand why it isn't being loaded.

    Thanks,
    Kevin
  • mesmes CaliforniaAdministrators, ZeroC Staff Mark SpruiellOrganization: ZeroC, Inc.Project: Ice Developer ZeroC Staff
    Hi,

    Are you using the default version of PHP for CentOS 5.6 (which is PHP 5.1.6), or a newer version? If you are using a newer version, that would also explain why the Ice extension isn't being loaded. The Ice extension included in the Ice RPMs is built for and intended to be used with the system's default PHP version. If you have installed PHP 5.2 or later, it won't be able to load this Ice extension.

    To solve this, you'll need to build the Ice extension from source so that it is compatible with your PHP version.

    Cheers,
    Mark
  • seraphkzseraphkz Member Kevin ZhaoOrganization: New EmberProject: New Ember
    That's why. I'm using Php 5.2.17

    Thanks,
    Kevin
  • mesmes CaliforniaAdministrators, ZeroC Staff Mark SpruiellOrganization: ZeroC, Inc.Project: Ice Developer ZeroC Staff
    This thread gives instructions for building the Ice extension.

    Mark
  • seraphkzseraphkz Member Kevin ZhaoOrganization: New EmberProject: New Ember
    I will definitely go take a look..

    Thanks so much for your help again, greatly appreciated. I will come back here if I have further questions.



    Kevin
  • seraphkzseraphkz Member Kevin ZhaoOrganization: New EmberProject: New Ember
    I have a very stupid question,
    I'm trying to edit the PHP_HOME part in the src make.rules since i do not have a php folder in /opt

    Just curious though, do you know where my php is installed? I can't seem to find it. It's not in the default /opt/php folder. Is there somewhere else I should look?

    I'm getting errors while doing "make" under php folder.
  • seraphkzseraphkz Member Kevin ZhaoOrganization: New EmberProject: New Ember
    Is it any possible that you can do a remote session with me and help me out? :( I'm willing to pay you a support fee.
  • mesmes CaliforniaAdministrators, ZeroC Staff Mark SpruiellOrganization: ZeroC, Inc.Project: Ice Developer ZeroC Staff
    On the command line, type:

    % which php

    Set PHP_HOME to the parent directory of the response. For example, if the output of the which command is

    /usr/local/bin/php

    then set PHP_HOME like this:

    % export PHP_HOME=/usr/local

    It's not necessary to modify the Make.rules file just to change PHP_HOME; setting the environment variable is sufficient.

    Mark
  • seraphkzseraphkz Member Kevin ZhaoOrganization: New EmberProject: New Ember
    Thanks, now it's saying "Unable to find slice2cpp in *****"
    I've set ICE_HOME to where I put the Ice-3.3.1 folder.
  • mesmes CaliforniaAdministrators, ZeroC Staff Mark SpruiellOrganization: ZeroC, Inc.Project: Ice Developer ZeroC Staff
    It's not necessary to set ICE_HOME, but you do need to follow all of the steps in my other post. You first need to build a few C++ components (libIceUtil, libIce, libSlice, and slice2cpp) in the source distribution before you can build the Ice extension for PHP.

    Mark
  • seraphkzseraphkz Member Kevin ZhaoOrganization: New EmberProject: New Ember
    Thanks,

    I accidentally set the ICE_HOME, is there a way to make it back to default?
  • xdmxdm La Coruña, SpainAdministrators, ZeroC Staff Jose Gutierrez de la ConchaOrganization: ZeroC, Inc.Project: Ice Developer ZeroC Staff
    Hi
    I accidentally set the ICE_HOME, is there a way to make it back to default?

    If you export ICE_HOME in your environment just unset it.

    In Linux/Unix
    unset ICE_HOME
    

    Or in Windows
    set ICE_HOME=
    

    if you define it in config/Make.rules just comment or remove the line out.
    #ICE_HOME=....
    
Sign In or Register to comment.