Archived
This forum has been archived. Please start a new discussion on GitHub.
IcePHP 3.4.2 not working on OpenSUSE 12.1
Hi guys,
I have a new server running for my hosting stuff, and I want to add the ice-php extension to my PHP installation.
I installed ICE from the ICE SUSE repository (It installed Ice 3.4.2).
After installing the ice-php package, I checked and it automatically added the ice.ini file and referenced to the IcePHP.so library extension.
My machine is x64, and I checked /usr/lib64/ and the ice libraries are there.
My apache is the OpenSUSE 12.1 repository version (apache 2.2.21) and the PHP version as well (PHP 5.3.8).
But when I run php -m, the ice module is not listed, and when running phpinfo(), in the "additional .ini files parsed" part, I see that the ice.ini is parsed, but the extension is just isn't loaded.
Can anyone help me to get the Ice PHP extension running? thanks!
I have a new server running for my hosting stuff, and I want to add the ice-php extension to my PHP installation.
I installed ICE from the ICE SUSE repository (It installed Ice 3.4.2).
After installing the ice-php package, I checked and it automatically added the ice.ini file and referenced to the IcePHP.so library extension.
My machine is x64, and I checked /usr/lib64/ and the ice libraries are there.
My apache is the OpenSUSE 12.1 repository version (apache 2.2.21) and the PHP version as well (PHP 5.3.8).
But when I run php -m, the ice module is not listed, and when running phpinfo(), in the "additional .ini files parsed" part, I see that the ice.ini is parsed, but the extension is just isn't loaded.
Can anyone help me to get the Ice PHP extension running? thanks!
0
Comments
-
Hi Raul,
The SLES RPMs that we supply were built for SLES 11. At the time we released Ice 3.4.2, the current version of PHP on SLES 11 was PHP 5.2.6. As a result, you will not be able to use our ice-php RPM on OpenSUSE 12 with PHP 5.3.x.
Unless you can find Ice RPMs that were built specifically for OpenSUSE 12, I recommend building the PHP extension from source. You'll need to download the Ice source archive, install the mcpp-devel RPM, and then build some of the Ice sources:% tar xzf Ice-3.4.2.tar.gz % cd Ice-3.4.2/cpp/src/IceUtil % make % cd ../Slice % make % cd ../slice2cpp % make % cd ../Ice % make % cd ../slice2php % make % cd ../../../php % make
Review the php/INSTALL file for more information.
Regards,
Mark0 -
Hey Mark, thanks for the quick reply,
Following your steps, when doing the slice make, I got this:s1:~/installers/Ice-3.4.2/cpp/src # cd Slice/ s1:~/installers/Ice-3.4.2/cpp/src/Slice # make c++ -c -I.. -I../../include -DSLICE_API_EXPORTS -m64 -Wall -D_REENTRANT -fPIC -g Scanner.cpp c++ -c -I.. -I../../include -DSLICE_API_EXPORTS -m64 -Wall -D_REENTRANT -fPIC -g ../Slice/Grammar.cpp c++ -c -I.. -I../../include -DSLICE_API_EXPORTS -m64 -Wall -D_REENTRANT -fPIC -g Parser.cpp c++ -c -I.. -I../../include -DSLICE_API_EXPORTS -m64 -Wall -D_REENTRANT -fPIC -g CPlusPlusUtil.cpp c++ -c -I.. -I../../include -DSLICE_API_EXPORTS -m64 -Wall -D_REENTRANT -fPIC -g CsUtil.cpp c++ -c -I.. -I../../include -DSLICE_API_EXPORTS -m64 -Wall -D_REENTRANT -fPIC -g JavaUtil.cpp c++ -c -I.. -I../../include -DSLICE_API_EXPORTS -m64 -Wall -D_REENTRANT -fPIC -g Preprocessor.cpp c++ -c -I.. -I../../include -DSLICE_API_EXPORTS -m64 -Wall -D_REENTRANT -fPIC -g Checksum.cpp c++ -c -I.. -I../../include -DSLICE_API_EXPORTS -m64 -Wall -D_REENTRANT -fPIC -g PythonUtil.cpp c++ -c -I.. -I../../include -DSLICE_API_EXPORTS -m64 -Wall -D_REENTRANT -fPIC -g DotNetNames.cpp c++ -c -I.. -I../../include -DSLICE_API_EXPORTS -m64 -Wall -D_REENTRANT -fPIC -g RubyUtil.cpp c++ -c -I.. -I../../include -DSLICE_API_EXPORTS -m64 -Wall -D_REENTRANT -fPIC -g PHPUtil.cpp c++ -c -I.. -I../../include -DSLICE_API_EXPORTS -m64 -Wall -D_REENTRANT -fPIC -g Util.cpp c++ -c -I.. -I../../include -DSLICE_API_EXPORTS -m64 -Wall -D_REENTRANT -fPIC -g FileTracker.cpp c++ -c -I.. -I../../include -DSLICE_API_EXPORTS -m64 -Wall -D_REENTRANT -fPIC -g MD5.cpp c++ -c -I.. -I../../include -DSLICE_API_EXPORTS -m64 -Wall -D_REENTRANT -fPIC -g MD5I.cpp rm -f ../../lib/libSlice.so.3.4.2 c++ -shared -Wl,--enable-new-dtags -Wl,-rpath,/opt/Ice-3.4/lib64 -rdynamic -m64 -Wall -D_REENTRANT -fPIC -g -L../../lib -o ../../lib/libSlice.so.3.4.2 -Wl,-h,libSlice.so.34 Scanner.o ../Slice/Grammar.o Parser.o CPlusPlusUtil.o CsUtil.o JavaUtil.o Preprocessor.o Checksum.o PythonUtil.o DotNetNames.o RubyUtil.o PHPUtil.o Util.o FileTracker.o MD5.o MD5I.o -lIceUtil -lmcpp -lpthread -lrt /usr/lib64/gcc/x86_64-suse-linux/4.6/../../../../x86_64-suse-linux/bin/ld: cannot find -lmcpp collect2: ld returned 1 exit status make: *** [../../lib/libSlice.so.3.4.2] Error 1
Any thoughts on this?
Thanks
EDIT:
Sorry, on another forum I found that I needed mcpp as well, and I didn't have that package on the server.0 -
Hi,
It looks like you didn't install the mcpp-devel RPM. We provide this RPM for SLES 11, hopefully this will work for you.
Regards,
Mark0 -
Thanks again Mark,
Sorry for being such a pain, but now building Ice, I got a ../../include/Ice/Buffer.h:41:17: error: ptrdiff_t does not name a type error, I searched google and apparently there was a bug in 3.4.1 but it's already fixed, so I don't know what to do here, I checked also a libreadline library that was supposed to be there and be the GPLv2 version, but I have the correct one, here's the output:s1:~/installers/Ice-3.4.2/cpp/src # cd Ice s1:~/installers/Ice-3.4.2/cpp/src/Ice # make rm -f ../../include/Ice/BuiltinSequences.h BuiltinSequences.cpp ../../bin/slice2cpp --ice --include-dir Ice --dll-export ICE_API -I../../../slice --stream ../../../slice/Ice/BuiltinSequences.ice mv BuiltinSequences.h ../../include/Ice rm -f ../../include/Ice/Communicator.h Communicator.cpp ../../bin/slice2cpp --ice --include-dir Ice --dll-export ICE_API -I../../../slice ../../../slice/Ice/Communicator.ice mv Communicator.h ../../include/Ice rm -f ../../include/Ice/Connection.h Connection.cpp ../../bin/slice2cpp --ice --include-dir Ice --dll-export ICE_API -I../../../slice ../../../slice/Ice/Connection.ice mv Connection.h ../../include/Ice rm -f ../../include/Ice/Current.h Current.cpp ../../bin/slice2cpp --ice --include-dir Ice --dll-export ICE_API -I../../../slice ../../../slice/Ice/Current.ice mv Current.h ../../include/Ice rm -f ../../include/Ice/Endpoint.h Endpoint.cpp ../../bin/slice2cpp --ice --include-dir Ice --dll-export ICE_API -I../../../slice ../../../slice/Ice/Endpoint.ice mv Endpoint.h ../../include/Ice rm -f ../../include/Ice/EndpointTypes.h EndpointTypes.cpp ../../bin/slice2cpp --ice --include-dir Ice --dll-export ICE_API -I../../../slice ../../../slice/Ice/EndpointTypes.ice mv EndpointTypes.h ../../include/Ice rm -f ../../include/Ice/FacetMap.h FacetMap.cpp ../../bin/slice2cpp --ice --include-dir Ice --dll-export ICE_API -I../../../slice ../../../slice/Ice/FacetMap.ice mv FacetMap.h ../../include/Ice rm -f ../../include/Ice/Identity.h Identity.cpp ../../bin/slice2cpp --ice --include-dir Ice --dll-export ICE_API -I../../../slice ../../../slice/Ice/Identity.ice mv Identity.h ../../include/Ice rm -f ../../include/Ice/ImplicitContext.h ImplicitContext.cpp ../../bin/slice2cpp --ice --include-dir Ice --dll-export ICE_API -I../../../slice ../../../slice/Ice/ImplicitContext.ice mv ImplicitContext.h ../../include/Ice rm -f ../../include/Ice/LocalException.h LocalException.cpp ../../bin/slice2cpp --ice --include-dir Ice --dll-export ICE_API -I../../../slice ../../../slice/Ice/LocalException.ice mv LocalException.h ../../include/Ice rm -f ../../include/Ice/Locator.h Locator.cpp ../../bin/slice2cpp --ice --include-dir Ice --dll-export ICE_API -I../../../slice ../../../slice/Ice/Locator.ice mv Locator.h ../../include/Ice rm -f ../../include/Ice/Logger.h Logger.cpp ../../bin/slice2cpp --ice --include-dir Ice --dll-export ICE_API -I../../../slice ../../../slice/Ice/Logger.ice mv Logger.h ../../include/Ice rm -f ../../include/Ice/ObjectAdapter.h ObjectAdapter.cpp ../../bin/slice2cpp --ice --include-dir Ice --dll-export ICE_API -I../../../slice ../../../slice/Ice/ObjectAdapter.ice mv ObjectAdapter.h ../../include/Ice rm -f ../../include/Ice/ObjectFactory.h ObjectFactory.cpp ../../bin/slice2cpp --ice --include-dir Ice --dll-export ICE_API -I../../../slice ../../../slice/Ice/ObjectFactory.ice mv ObjectFactory.h ../../include/Ice rm -f ../../include/Ice/Plugin.h Plugin.cpp ../../bin/slice2cpp --ice --include-dir Ice --dll-export ICE_API -I../../../slice ../../../slice/Ice/Plugin.ice mv Plugin.h ../../include/Ice rm -f ../../include/Ice/Process.h Process.cpp ../../bin/slice2cpp --ice --include-dir Ice --dll-export ICE_API -I../../../slice ../../../slice/Ice/Process.ice mv Process.h ../../include/Ice rm -f ../../include/Ice/Properties.h Properties.cpp ../../bin/slice2cpp --ice --include-dir Ice --dll-export ICE_API -I../../../slice ../../../slice/Ice/Properties.ice mv Properties.h ../../include/Ice rm -f ../../include/Ice/Router.h Router.cpp ../../bin/slice2cpp --ice --include-dir Ice --dll-export ICE_API -I../../../slice ../../../slice/Ice/Router.ice mv Router.h ../../include/Ice rm -f ../../include/Ice/ServantLocator.h ServantLocator.cpp ../../bin/slice2cpp --ice --include-dir Ice --dll-export ICE_API -I../../../slice ../../../slice/Ice/ServantLocator.ice mv ServantLocator.h ../../include/Ice rm -f ../../include/Ice/SliceChecksumDict.h SliceChecksumDict.cpp ../../bin/slice2cpp --ice --include-dir Ice --dll-export ICE_API -I../../../slice ../../../slice/Ice/SliceChecksumDict.ice mv SliceChecksumDict.h ../../include/Ice rm -f ../../include/Ice/Stats.h Stats.cpp ../../bin/slice2cpp --ice --include-dir Ice --dll-export ICE_API -I../../../slice ../../../slice/Ice/Stats.ice mv Stats.h ../../include/Ice rm -f ../../include/Ice/PropertiesF.h PropertiesF.cpp ../../bin/slice2cpp --ice --include-dir Ice --dll-export ICE_API -I../../../slice ../../../slice/Ice/PropertiesF.ice mv PropertiesF.h ../../include/Ice rm -f PropertiesF.cpp rm -f ../../include/Ice/EndpointF.h EndpointF.cpp ../../bin/slice2cpp --ice --include-dir Ice --dll-export ICE_API -I../../../slice ../../../slice/Ice/EndpointF.ice mv EndpointF.h ../../include/Ice rm -f EndpointF.cpp rm -f ../../include/Ice/ObjectAdapterF.h ObjectAdapterF.cpp ../../bin/slice2cpp --ice --include-dir Ice --dll-export ICE_API -I../../../slice ../../../slice/Ice/ObjectAdapterF.ice mv ObjectAdapterF.h ../../include/Ice rm -f ObjectAdapterF.cpp rm -f ../../include/Ice/CommunicatorF.h CommunicatorF.cpp ../../bin/slice2cpp --ice --include-dir Ice --dll-export ICE_API -I../../../slice ../../../slice/Ice/CommunicatorF.ice mv CommunicatorF.h ../../include/Ice rm -f CommunicatorF.cpp rm -f ../../include/Ice/ConnectionF.h ConnectionF.cpp ../../bin/slice2cpp --ice --include-dir Ice --dll-export ICE_API -I../../../slice ../../../slice/Ice/ConnectionF.ice mv ConnectionF.h ../../include/Ice rm -f ConnectionF.cpp rm -f ../../include/Ice/ObjectFactoryF.h ObjectFactoryF.cpp ../../bin/slice2cpp --ice --include-dir Ice --dll-export ICE_API -I../../../slice ../../../slice/Ice/ObjectFactoryF.ice mv ObjectFactoryF.h ../../include/Ice rm -f ObjectFactoryF.cpp rm -f ../../include/Ice/LoggerF.h LoggerF.cpp ../../bin/slice2cpp --ice --include-dir Ice --dll-export ICE_API -I../../../slice ../../../slice/Ice/LoggerF.ice mv LoggerF.h ../../include/Ice rm -f LoggerF.cpp c++ -c -I.. -I../../include -DICE_API_EXPORTS -m64 -Wall -D_REENTRANT -fPIC -g Acceptor.cpp In file included from ../../include/Ice/BasicStream.h:17:0, from ../../include/Ice/OutgoingAsync.h:23, from ../../include/Ice/Proxy.h:25, from ../../include/Ice/PropertiesF.h:29, from ../Ice/Network.h:18, from ../Ice/Acceptor.h:16, from Acceptor.cpp:10: ../../include/Ice/Buffer.h:41:17: error: âptrdiff_tâ does not name a type make: *** [Acceptor.o] Error 1
Thank you very much
EDIT: I added <stddef.h> standard file to the Buffer.h headers which defines the ptrdiff_t type, and then it compiled, I think this needs to be fixed, Does anyone know where to file a bug to maybe have this looked at more deeply?
0 -
Here's the bug fix link where I found that using stddef.h would help fix the problem, in the link they used cstddef.h but I used stddef.h which is recommended as more standard and works on C++.
They had to do the fix for 3.4.1, but I had to do this for 3.4.2 that happened the same to me but only for Ice/Buffer.h
I only added the following in the file ICE_ROOT/cpp/include/Ice/Buffer.h in line 14 after #include <Ice/Config.h>
#include <stddef.h>
and that's it.
Debian Forums Ice fix
Hope that information is of any help for solving this.
Thanks!0