php 5.1.4 通过OCI8 以及instantclient访问远程oracle 9i数据库
ph p 5.1.4 通过 OCI8 以及 instantclient 访问远程 oracle 9i 数据库的安装步骤 ,今天终于成功了。呵呵,开心。详见全文。。 前段时间的问题: 我现在需要在一台 WWW 服务器上安装 instant-client, 用于 PHP 与远程 oracle 9.2.0 .6 数据库的连接。 我安装
ph
前段时间的问题:
我现在需要在一台WWW服务器上安装instant-client,用于PHP与远程oracle
我安装了这两个RPM包。
oracle-instantclient-basic-10.1.0.3-1.i386.rpm
oracle-instantclient-devel-10.1.0.3-1.i386.rpm
然后在PHP的编译脚本里加了 --with-oci8-instant-client=/usr/lib/oracle/
然后执行 install.sh;make;make install 一切都显得很正常。
[root@WWW-HP php-
./configure --host=x86_64-redhat-linux --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/php --with-mail --sysconfdir=/usr/local/php/etc --enable-sockets --enable-versioning --with-mysql=/usr/local/mysql --enable-memory-limit=yes --with-oci8-instant-client=/usr/lib/oracle/10.1.0.3/client/lib --enable-sigchild --with-gd=/usr/local/gd --with-freetype=/usr/local/freetype --with-ttf --with-zlib --with-png --with-jpeg --with-xml --enable-track-vars
然后将php.ini-recommended 文件拷贝到了/usr/local/php/php.ini .并放开了该文件中的extension=php_oci8.dll 。
重起 apache服务。 可是用去看,怎么都看不到OCI 8 enabled 那部分内容。
我查看编译时的信息,发现 OCI8 的支持是no : checking for Oracle (OCI8) support... no 可是,我明明加了这个支持选项啊。。
急死人了。请大侠不吝赐教~谢谢先~
=====
问题还没有解决:
可是发现一点:如果编译的时候,不使用--witch-oci8-instant-client,而是使用--with-oci8 ,那么查看configure过程中的信息,就有
checking for Oracle (OCI8) support... yes
了。但make 过程中,将出现:
/usr/bin/ld: skipping incompatible /usr/oracle/lib/libclntsh.so when searching for -lclntsh
的错误。。
继续寻求方法中。。。。。
后来, 今天查看到一篇文章 http://ubuntuforums.org/showthread.php?t=92528 下载了 oci8-
进行安装终于成功。
下面是全部的详细安装过程:
环境及软件说明:
fedora 4 for X86-64 hp PC服务器
php-
Apache/
oci8-
instantclient-basic-linuxAMD64-
instantclient-sdk-linuxAMD64-10.1.0.5.0-20060519.zip
下载地址: http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxx86_64soft.html
本机也安装了oracle 9i client ,但由于整合不了,就采用了instantclient方式。这里,需要tnsnames.ora文件
1)下载instantclient-basic 及instantclient-sdk 包,并解开放在/usr/local/instantclient10_1/目录
instantclient-basic-linuxAMD64-
instantclient-sdk-linuxAMD64-10.1.0.5.0-20060519.zip
由于oracle 网站的问题,开始无法下载这些文件, 等了一天,终于可以了。还是不用前面的那几个文件, 还是用回支持64位的软件。
2)echo /usr/local/instantclient10_1 > /etc/ld.so.conf
3)在/etc/profile 里增加如下环境变量信息:
export TNS_ADMIN=/usr/oracle/network/admin
export NLS_LANG="Simplified Chinese_China.ZHS16GBK"
export LANG=zh_CN
export LD_LIBRARY_PATH=/usr/local/instantclient10_1
并执行. /etc/profile 或退出重新进入系统。
并按照有的资料的说明,将apche.conf 文件里定义的User 和Group 加到dba组里。
cat /etc/group
dba:x:502:oracle,nobody
4) 将oci8-
cd /usr/local/src/
tar xvfz oci8-1.2.1.tgz
cd oci8-1.2.1
ln -s libclntsh.so.10.1 libclntsh.so
ln -s libocci.so.10.1 libocci.so
5) 下载instantclient-basic 及instantclient-sdk 包,并解开放在/usr/local/instantclient10_1/目录
6) 将php-
cd /usr/local/src/
tar xvfz php-5.1.4.tar.gz
编写新的编译脚本install.sh ,内容为:
./configure --host=x86_64-redhat-linux --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/php --with-mail --sysconfdir=/usr/local/php/etc --enable-sockets --enable-versioning --with-mysql=/usr/local/mysql --enable-memory-limit=yes --with-oci8=instantclient,/usr/local/instantclient10_1/ --enable-sigchild --with-gd=/usr/local/gd --with-freetype=/usr/local/freetype --with-ttf --with-zlib --with-png --with-jpeg --with-xml --enable-track-vars
注意:这里,--with-oci8=instantclient,/usr/local/instantclient10_1/ 我先按照--with-oci8=shared,instantclient,/usr/local/instantclient10_1/ 的shared方式安装,但在configure 过程中,会提示, --enable-versioning 不支持shared 安装方式。因此,我改用了Installing as statically compiled extension 的方式安装(区别见oci8包里的README)
然后编译链接:
./install.sh
make
make install
libtool --finish /usr/local/src/php-
没有报错,一切正常。
7)cp php.ini-recommended /usr/local/php/php.ini
vi /usr/local/php/php.ini
将/usr/local/php/lib/php 放到了includde_path后,可忘记把; 去掉,发现没影响啊。呵呵。后来,还是去掉了注释。
include_path = ".:/php/includes:/usr/local/php/lib/php"
(说明:如果使用shared方式安装的,需要在 php.ini 中添加extension=oci8.so 一行。而我的是静态的方式安装的,就不需要这行了。
8)然后,重起apache 服务:
/apache2/bin/apachectl restart
9)编写php.php
phpinfo();
?>
在浏览器中访问,哈哈,可爱的OCI8 Support enabled 部分的内容,终于出现啦。。
注意:我使用 phpinfo(); ?> 页面是空白。
经过测试,PHP程序可以正常访问远程数据库啦!(

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP 8.4 帶來了多項新功能、安全性改進和效能改進,同時棄用和刪除了大量功能。 本指南介紹如何在 Ubuntu、Debian 或其衍生版本上安裝 PHP 8.4 或升級到 PHP 8.4

Visual Studio Code,也稱為 VS Code,是一個免費的原始碼編輯器 - 或整合開發環境 (IDE) - 可用於所有主要作業系統。 VS Code 擁有大量針對多種程式語言的擴展,可以輕鬆編寫

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

字符串是由字符組成的序列,包括字母、數字和符號。本教程將學習如何使用不同的方法在PHP中計算給定字符串中元音的數量。英語中的元音是a、e、i、o、u,它們可以是大寫或小寫。 什麼是元音? 元音是代表特定語音的字母字符。英語中共有五個元音,包括大寫和小寫: a, e, i, o, u 示例 1 輸入:字符串 = "Tutorialspoint" 輸出:6 解釋 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。總共有 6 個元

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。

PHP的魔法方法有哪些? PHP的魔法方法包括:1.\_\_construct,用於初始化對象;2.\_\_destruct,用於清理資源;3.\_\_call,處理不存在的方法調用;4.\_\_get,實現動態屬性訪問;5.\_\_set,實現動態屬性設置。這些方法在特定情況下自動調用,提升代碼的靈活性和效率。
