安装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添加源码安装。
最新文章
- golang笔记——array
- easyui layout 布局title
- python getopt使用
- selenium处理极验滑动验证码
- css3属性(一)
- maven常用插件总结
- ajax跨域提交
- 数据结构(一)之HelloWord
- nullptr和NULL
- Linux下禁用、启用SeLinux
- 对 Azure 虚拟网络网关的改进
- css权威指南(上)
- Java中异常处理和设计
- Spring发送邮件
- linux安装lamp/lamp/lanmp
- ADO 动态链接数据库
- Alpha 冲刺一
- mysql数据库切分
- LeetCode 新题: Find Minimum in Rotated Sorted Array 解题报告-二分法模板解法
- crt key转p12, jks p12互转,windows生成jks,
热门文章
- HttpServletRequestWrapper 是HttpServletRequest的包装类 &#183;关系相当于 int 与integer的关系
- javaBean默认接受request发送过来的数据,根据键自动设置属性
- 2011 Multi-University Training Contest 7 - Host by ECNU
- 卡特兰数(Catalan Number) 学习笔记
- HDOJ.2955 Robberies (01背包+概率问题)
- 洛谷P4135 作诗 (分块)
- MYSQL性能察看
- 题解 【luogu P2680 NOIp提高组2015 运输计划】
- 移动端1px边框问题
- ES6中函数的扩展