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程序可以正常访问远程数据库啦!(

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

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

Dreamweaver Mac版
视觉化网页开发工具

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。