PHP Informix on Linux 安裝與設定

Published on:

環境

  • Ubuntu 12.04 LTS
  • Apache 2.2.22
  • PHP 5.3.10

如果沒有 apache 與 php 環境可由套件庫安裝

$ sudo apt-get install apache2 php5

為了編譯模組,需要安裝 php5-dev

$ sudo apt-get install php5-dev

為了取得 PECL 上的原始碼,需要安裝 subversion (即 SVN)

$ sudo apt-get install subversion

安裝 Informix Client SDK

這個連結可以下載 Informix Developer Edition,有免費的版本,但僅供開發使用且有使用資源上的限制。我抓下來的檔案為 iif.11.70.UC5DE.Linux-RHEL5.tar。其實根據 [Install Informix on Debian] 這篇文章看來,應該是有單純的 ClientSDK 可以下載,但是我找不到...

將其解開

$ cd && mkdir informix && cd informix

$ tar -xf /PATH/TO/iif.11.70.UC5DE.Linux-RHEL5.tar

建立 informix 帳號與群組

$ sudo addgroup --system informix

$ sudo adduser --system informix --ingroup informix

開始安裝

$ sudo ./ids_install # 官方文件是要我們加上 -i gui 以圖形模式安裝,亦可

#這中間的訊息會出現下面這一行疑似錯誤的訊息,但是不影響後面動作

strings: '/lib/libc.so.6': No such file

在安裝過程中,多數設定都用預設值,但安裝目錄預設為 /opt/IBM/informix,我改為 /opt/informix 了。另外,可以自訂想安裝的模組,由於我不需要自行架設 server,所以這邊我只留下 IBM Informix Client SDK 與 Global Language Support (GLS) 中的 Chinese,其他全都取消了。

最後設定環境變數供後續安裝使用

export INFORMIXDIR=/opt/informix

安裝 PHP Informix 模組

    $ cd && mkdir php_informix && cd php_informix  
    取得 php informix 的原始碼  
    $ svn checkout http://svn.php.net/repository/pecl/informix/trunk/  
    進行建置  
    $ cd trunk  
    $ phpize --with-php-config=`which php-config`  
    $ ./configure --with-php-config=`which php-config`  
    停!這邊有個問題需要處理....在產生出來的 `Makefile` 的第 16 行有個這樣的敘述  
    INFORMIX_SHARED_LIBADD = -Wl,-rpath,/opt/informix/lib/esql -L/opt/informix/lib/esql -Wl,-rpath,/opt/informix/lib -L/opt/informix/lib -lifsql -lifasf -lifgen -lifos -lifgls -lnetstub -ldl -lcrypt -lifglx  
    我們必須手動給他加點參數才能讓後續執行動作正常,在後面加上 `/opt/IBM/lib/esql/checkapi.o`  
    INFORMIX_SHARED_LIBADD = -Wl,-rpath,/opt/informix/lib/esql -L/opt/informix/lib/esql -Wl,-rpath,/opt/informix/lib -L/opt/informix/lib -lifsql -lifasf -lifgen -lifos -lifgls -lnetstub -ldl -lcrypt -lifglx /opt/informix/lib/esql/checkapi.o  
    開始編譯與安裝  
    $ make  
    $ sudo make install  
    Installing shared extensions: /usr/lib/php5/20090626+lfs/  
    每個人的安裝位置可能不同,以我這裡為例,我的安裝位置是在 `/usr/lib/php5/20090626+lfs/` (後續設定會用到)。  

設定

新增以下資料至相對應的設定檔中

/etc/php5/conf.d/informix.ini

extension=/usr/lib/php5/20090626+lfs/informix.so

/opt/informix/etc/sqlhosts (偷參考的設定的 nettype 是用 tli,但我測試需用 soc 才能正常連線)



/etc/hosts



/etc/services

/tcp

/etc/apache2/envvars (聽說在 RedHat 上為 /etc/sysconfig/httpd)

export INFORMIXDIR=/opt/informix

export INFORMIXSERVER=

有可能需要做 locale 的設定

export DB_LOCALE=zh_TW.big5

export CLIENT_LOCALE=zh_TW.big5

重新啟動 apache

$ sudo service apache2 restart

設定完後可在 phpinfo 中看到 Informix 的區段,以及在 Environment 區段可以看到我們設定的環境變數。

測試用 script

這個程式僅供參考用,也可以使用本來可執行的程式進行測試。要注意的是如果使用 php command 進行測試的話,要設定環境變數。(如 /etc/apache2/envvars 中新增的設定)

<?php

$db = ifx_connect("DBNAME@DBSERVER", "USERNAME", "PASSWORD");

var_dump($db);

?>

若可成功連結即表示安裝與設定成功

參考連結

Comments

comments powered by Disqus