下面开始安装:

一: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添加源码安装。

最新文章

  1. golang笔记——array
  2. easyui layout 布局title
  3. python getopt使用
  4. selenium处理极验滑动验证码
  5. css3属性(一)
  6. maven常用插件总结
  7. ajax跨域提交
  8. 数据结构(一)之HelloWord
  9. nullptr和NULL
  10. Linux下禁用、启用SeLinux
  11. 对 Azure 虚拟网络网关的改进
  12. css权威指南(上)
  13. Java中异常处理和设计
  14. Spring发送邮件
  15. linux安装lamp/lamp/lanmp
  16. ADO 动态链接数据库
  17. Alpha 冲刺一
  18. mysql数据库切分
  19. LeetCode 新题: Find Minimum in Rotated Sorted Array 解题报告-二分法模板解法
  20. crt key转p12, jks p12互转,windows生成jks,

热门文章

  1. HttpServletRequestWrapper 是HttpServletRequest的包装类 &#183;关系相当于 int 与integer的关系
  2. javaBean默认接受request发送过来的数据,根据键自动设置属性
  3. 2011 Multi-University Training Contest 7 - Host by ECNU
  4. 卡特兰数(Catalan Number) 学习笔记
  5. HDOJ.2955 Robberies (01背包+概率问题)
  6. 洛谷P4135 作诗 (分块)
  7. MYSQL性能察看
  8. 题解 【luogu P2680 NOIp提高组2015 运输计划】
  9. 移动端1px边框问题
  10. ES6中函数的扩展