给php安装rlib扩展的方法

rlib 的首页
[url]http://rlib.sicompos.com/[/url]
这是一个产生报表的工具
 
现在一个 php 的程序需要使用
首先当然是下载
[url]http://sourceforge.net/project/showfiles.php?group_id=88448[/url]
解压后按照 INSTALL 所说的那三步走
./configure
make
make install
一切都没问题 , 安装成功
 
但是开发人员说没装好 , 访问的页面显示
Fatal error: Call to undefined function: rlib_init()
而并没有出现想要的报表
 
很明显 rlib 这个 extension 扩展并没有被 php 载入
 
如何解决呢 ? 难道要重新编译 php?
翻出很久之前的安装过程 , 是装好 php 之后再装的 rlib 扩展 . 所以应该不需要重装 php
 
查看 phpinfo 的页面 , 发现
"Configuration File (php.ini) Path" 这一栏写的是 /usr/local/php/lib/ 而没有指出 php.ini, 显然这个路径下面没有 , 简单 , 直接 copy 一个到这个路径下 .
 
重启 apache, 再看 phpinfo 的页面 ,php.in 已经列出来了
"extension_dir" 这一栏是 ./ , 而我的 rlib.so rlib.sa /usr/local/php/lib/php/extensions/debug-non-zts-20041030 这个目录下
显然 php.ini 中的设置不对 .
 
正确的安装办法 :
首先看本机的 php 装了几个 . 因为有的机器上装了多个 php. 要确保 rlib 装在正确的 php , 最好先指定好 php-config 的路径 , 我现在想要把 rlib 装在 /usr/local/php 这个下
输入 whereis php-config 来检查看这个程序所在的地方
输出显示 /usr/bin 下有一个 php-config, 所以将其重命名禁用 .
然后修改 PATH 变量 , 指到正确的 php-config 路径 , 执行
PATH=/usr/local/php/bin:$PATH
查看 PATH 变量的值
echo $PATH 输出会有刚指定的路径 /usr/local/php/bin
 
然后安装 rlib, 解压缩之后执行
./configure 输出如下
rlib-1.3.7:
   prefix:                   /usr/local
   compiler:                 gcc
   Memory debugging:         no
   Warning Fun:              no
   Crash detection:          yes
   UTF8 disabled:            yes
   WIN32 build:              no
   Documentation:            no
 
   INPUTS:
    MYSQL:                   yes
    POSTGRES:                no
ODBC:                    no
 
   COMPRESSION:
    PDF:                     yes
   GRAPHING:
    PDF:                     Always
HTML:                    no
 
   BINDINGS:
    PHP:                     yes
     PHP entension dir:      /usr/local/php/lib/php/extensions/no-debug-non-zts-20041030
    PYTHON:                  no
     PYTHON version:         2.2
     PYTHON entension dir:  
    JAVA:                    no
    CSHARP:                  no
    PERL:                    yes
     PERL entension dir:     /usr/lib/perl5/5.8.0/i386-linux-thread-multi
 
   ** If you like RLIB send a postcard from where you are in the world to:
   ** Bob Doan - 4140 Skyron Drive - Doylestown - PA - 18901 �C USA
 
   Music:                    Coldplay / Virgin Radio
   Having Problems:          [email protected]
   Want To Contribute:       [email protected]
   Commercial License:       [email protected]
注意 php exention dir 所指的路径 , 也就是 rlib.so 这个 extension 库安装的位置
 
然后执行
make
make install
输出关键的地方是
/usr/bin/install -c .libs/rlib.so /usr/local/php/lib/php/extensions/no-debug-non-zts-20041030/rlib.so
/usr/bin/install -c .libs/rlib.lai /usr/local/php/lib/php/extensions/no-debug-non-zts-20041030/rlib.la
PATH="$PATH:/sbin" ldconfig -n /usr/local/php/lib/php/extensions/no-debug-non-zts-20041030
----------------------------------------------------------------------
Libraries have been installed in:
   /usr/local/php/lib/php/extensions/no-debug-non-zts-20041030
说明已经装好库了 , 可以查看
ls /usr/local/php/lib/php/extensions/no-debug-non-zts-20041030/
就会列出库文件 rlib.la rlib.so
 
查看 phpinfo 页面 , 注意下面几个变量的值
Configuration File (php.ini) Path   必须显示的完整的 php.ini 的路径 , /usr/local/php/lib/php.ini
如果只是目录 , 就需要手动复制一个 php.ini 到这个目录下 , 然后重启 apache, 直到看到这个项目是完整路径
extension_dir  这个是扩展库安装的目录 , 必须指定为 rlib.so 安装的位置 .
 
这里我们修改 php.ini
指定扩展库目录的位置
extension_dir ="/usr/local/php/lib/php/extensions/debug-non-zts-20041030"
而默认的是 extension_dir ="./"
 
增加扩展库的支持
extension=rlib.so
 
重启 apache 即可
 

你可能感兴趣的:(PHP,职场,休闲,rlib)