安装icephp 记

下面开始安装:

一:yum 安装

首先需要添加一个yum源。

# vi /etc/yum.repos.d/zeroc-ice-amzn.repo
写入:

[zeroc-ice]name=Ice 5 for Amazon Linux $releasever - $basearch

baseurl=http://www.zeroc.com/download/Ice/5/el6/$basearchenabled=1gpgcheck=1gpgkey=http://www.zeroc.com/download/RPM-GPG-KEY-zeroc-release

 

官网上说可以通过

# yum list ice* db53* mcpp-devel
查看安装包列表。真正的安装命令是

# yum install -y ice* db53* mcpp-devel
安装完成可以通过命令搜索文件所在路径:

#find / -name IcePHP.so


二:源码安装

我的PHP版本是5.4.23,对应安装的Ice版本为3.5.1。

 

下载Ice源

# cd /opt
# wget http://www.zeroc.com/download/Ice/3.5/Ice-3.5.1.tar.gz
# wget http://www.zeroc.com/download/Ice/3.5/ThirdParty-Sources-3.5.1.tar.gz
安装依赖库

yum -y install gcc gcc-c++ expat-devel bzip2 bzip2-devel
yum -y install openssl*


1. 安装ThirdParty-Sources

# tar xvf ThirdParty-Sources-3.5.1.tar.gz
# cd ThirdParty-Sources-3.5.1
# tar xvf mcpp-2.7.2.tar.gz
# cd mcpp-2.7.2
# patch -p0 < ../mcpp/patch.mcpp.2.7.2
# ./configure CFLAGS=-fPIC --enable-mcpplib --disable-shared
# make && make install
# cd ../


2. 安装BerkeleyDB

# tar zxf db-5.3.21.NC.tar.gz
# cd db-5.3.21.NC
# patch -p0 < ../db/patch.db.5.3.21
# cd build_unix
# ../dist/configure --prefix=/usr --enable-cxx
(说明:db的默认安装prefix路径是/usr/local/BerkeleyDB.5.3,需要改为/usr,否则make Ice时会找不到路径)

# make && make install


3. 安装Ice

# cd /opt
# tar xvf Ice-3.5.1.tar.gz
# cd Ice-3.5.1/cpp
# vi config/Make.tules(默认)
根据环境修改config/Make.rules文件(我这里的安装目录是/opt目录,是ICE默认配置的目录,所以不用修改。)


# make && make install
# cd ../
#
# cd php //安装PHP扩展
# vi config/Make.rules.php
PHP_HOME ?= /usr/local/php (修改为你php安装目录)

# make && make install
源码安装完成之后,会在当前目录生成IcePHP.so文件。

 

找到IcePHP.so文件后,将这个文件复制到php的扩展目录,然后在php.ini添加该扩展即可。
extension=IcePHP.so

 

启动PHP的时候如果遇到扩展错误:

PHP Startup: Unable to load dynamic library '/usr/local/server/php/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

 

这个是因为没加载到Ice的so文件导致的,可以使用ldd命令查看IcePHP.so。

# ldd IcePHP.so
linux-vdso.so.1 => (0x00007fff6c1ff000)

libIce.so.35 => not found

libSlice.so.35 => not found

libIceUtil.so.35 => not found

libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007fdc30e74000)

libm.so.6 => /lib64/libm.so.6 (0x00007fdc30bef000)

libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fdc309d9000)

libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fdc307bc000)

libc.so.6 => /lib64/libc.so.6 (0x00007fdc30427000)

/lib64/ld-linux-x86-64.so.2 (0x00007fdc314a6000)

这里可以看到,libIce.so这几个文件没有查找到。

# export LD_LIBRARY_PATH=/opt/Ice-3.5.1/lib64
# ldd IcePHP.so

linux-vdso.so.1 => (0x00007fffcd5ff000)

libIce.so.35 => /opt/Ice-3.5.1/lib64/libIce.so.35 (0x00007fc9c20f6000)

libSlice.so.35 => /opt/Ice-3.5.1/lib64/libSlice.so.35 (0x00007fc9c1c76000)

libIceUtil.so.35 => /opt/Ice-3.5.1/lib64/libIceUtil.so.35 (0x00007fc9c19fd000)

libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007fc9c16ed000)

libm.so.6 => /lib64/libm.so.6 (0x00007fc9c1468000)

libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fc9c1252000)

libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fc9c1035000)

libc.so.6 => /lib64/libc.so.6 (0x00007fc9c0ca0000)

libbz2.so.1 => /lib64/libbz2.so.1 (0x00007fc9c0a8f000)

libdl.so.2 => /lib64/libdl.so.2 (0x00007fc9c088b000)

librt.so.1 => /lib64/librt.so.1 (0x00007fc9c0682000)

/lib64/ld-linux-x86-64.so.2 (0x00007fc9c2d29000)

 

2014-10-28添加源码安装。

posted @ 2016-07-18 21:27  阿旭^_^  阅读(946)  评论(0编辑  收藏  举报