linux php adodb,【原创】Linux下php使用adodb对sql Server访问配置
版本歷史:
v.1.0, nanlovor, 2009/02/27,創建
文檔概要說明:
本文檔主要說明了在linux下使用php庫adodb對sql server進行訪問時的配置說明。
相關文檔:
1.概述
linux下的php對sqlserver存儲過程的訪問,有個比較嚴重的bug,就是如果想要同時獲得返回值和結果集時,linux下php提供的mssql擴展是有問題的。這影響了我們很多對原來神經系統功能向linux web平臺上的移植,也就是無法重用許多茂哥的存儲過程。現在找到了一條途徑,利用adodb的接口,我自己封裝了一套較為簡單的接口,可以在linux下對sqlserver存儲過程訪問,多返回值+多結果集情況均適用,能夠正確返回。
2. freetds的安裝
如果php要采用底層freetds訪問sqlServer中多返回集和多返回值的存儲過程,那么需要安裝freetds的0.82版本(原來我們采用的是freetds的0.64版本,在php調用sqlServer的多返回值+多返回集情況下是有問題的)
1、刪除原來版本
如果已經安裝有原來的freetds-0.64,最好刪除原有的版本
#cd freetds-0.64
#make uninstall
如果沒有原有的freetds-0.64的安裝目錄已經找不到了,則直接
#mv /usr/local/freetds /usr/local/freetds-0.64 (假設原來freetds安裝在/usr/local/freetds下)
2、安裝新版本
# tar xvfz freetds-stable.tgz
# cd freetds-0.82
# ./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --enable-msdblib
# make
# make install
(注意,以下操作很重要,否則,php會檢測不到freetds的目錄):由于PHP檢測其安裝目錄的時候有些問題;因此,需要檢查/user/local/freetds/lib/libtds.a和/usr/local/freetds/include/tds.h兩個文件是否存在,如果不存在,則
#touch /usr/local/freetds/lib/libtds.a
#touch /usr/local/freetds/include/tds.h
創建兩個空文件。
3、配置freetds.conf
#vim /usr/local/freetds/etc/freetds.conf
增加
[serviceName] #服務名
host =?**.**.**.**#(數據庫主機地址)
port = 1433
tds version = 8.0
client charset = GBK
4、如果原來的系統已經有了銀聯接口,那么就不需要重新編譯php了,直接重新啟動Apache即可;
#service httpd restart
3.重新編譯php,添加銀聯接口
1、準備好銀聯給予的一個程序包php.rar
銀聯接口使用環境:在linux環境下(內核版本號:2.6.20-1.2320.fc5smp),Apache2(版本號為:2.2.2),PHP5(版本號為:5.2.5)下嘗試使用PHP頁面調用成功。
我們提供如下文件:
2、在PHP的安裝包解開的目錄下(本例子為:php-5.2.5):
進入ext的目錄,將chinapay.def復制到這個目錄下,使用ext_skel來生成自動擴展的框架。
命令方式為:
#./ext_skel --extname=chinapay --proto=chinapay.def
3修改ext/chinapay/目錄下的config.m4文件,將如下內容的前面"dnl"刪除,保存文件:
dnl PHP_ARG_ENABLE(chinapay, whether to enable chinapay support,
dnl Make sure that the comment is aligned:
dnl [--enable-chinapayEnable chinapay support])
4修改ext/chinapay/目錄下的chinpay.c和php_chinapay.h文件。文件內容見樣例。對于chinapay.php文件可以用來測試是否能夠正常調用簽名方法(在編譯完成后可以使用:/usr/local/php-5.2.5/sapi/cli/php -f chinapay.php來運行該PHP文件,驗證是否成功)。
5退到ext的上一層目錄
6使用./buildconf --force
7使用命令:
#./configure --with-apxs2=/usr/sbin/apxs --with-mysql --with-zlib-dir --with-bz2 --with-libxml-dir --with-gd --with-ttf --enable-mbstring --enable-gd-native-ttf --with-jpeg-dir --with-png-dir --with-freetype-dir --with-oci8=/opt/oracle --without-sqlite --with-mssql=/usr/local/freetds --enable-chinapay --enable-soap
8修改Makefile文件,找到EXTRA_LIBS,在最后加入-L/usr/local/lib -lnpc
/usr/local/lib為libnpc.so所在的目錄。
9使用make
10使用make install.
注意:make的時候如果仍然找不到libnpc.so的話,可以采取下面措施:進入到/etc/ld.so.conf.d下,寫入一個名為chinapay.conf的文件,內容為/usr/local/lib。表示so的搜索路徑。然后運行命令:ldconfig
4.adodb的安裝和配置
將svn目錄中的include/db/adodb整個目錄放到php中配置的頭文件目錄下例如
/var/www/html/include/db/
# cp -R adodb/var/www/html/include/db/
將GenericAdoMssqlDB放到/var/www/html/include/db/中,該文件為對adodb接口的封裝
# cp GenericAdoMssqlDB/var/www/html/include/db/
總結
以上是生活随笔為你收集整理的linux php adodb,【原创】Linux下php使用adodb对sql Server访问配置的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 为什么王者荣耀总是服务器中断,王者荣耀服
 - 下一篇: n维椭球体积公式_2020中考物理知识汇