zoukankan      html  css  js  c++  java
  • 安装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添加源码安装。

  • 相关阅读:
    Mac查看与修改系统默认shell
    nginx经验分享
    如何将MAC的 Terminal 行首变得清爽简洁一点?
    关于Promise详解
    关于Webpack详述系列文章 (第四篇)
    关于Webpack详述系列文章 (第三篇)
    关于Webpack详述系列文章 (第二篇)
    关于Webpack详述系列文章 (第一篇)
    关于回调函数和回调函数常出现的问题
    原生JS使用Blob导出csv文件
  • 原文地址:https://www.cnblogs.com/a-xu/p/5682703.html
Copyright © 2011-2022 走看看