发信人: net-wolf() 
整理人: (2000-08-10 15:10:20), 站内信件
 | 
 
 
PHP4 & ORACLE8i & NES3.6 for Solaris2.6编译和远程连接指南
 
 在oracle server 上安装oracle8i
 
 安装oracle8i时要选择us7ascii字符集才能支持中文,我尝试过gb2312,weiso88 89pi等字符集,结果php从oracle取得的汉字都是问号,也尝试过gbk编码,结果 问题更古怪,ocilogon报告ORA-03106错误,令人摸不着头脑。
 
 然后在web server 上安装oracle 8i的client端,可以用netec来配置客户端,也 可以直接从oracle server端把tnsnames.ora用ftp传过来,运行tnsping 来测试 是否连同oracle server,最好是用sqlplus来登陆一下,格式是:scott@oracle_ service_name/tiger。
 
 从php老家http://www.php.net下载最新的php4.0.1pl2版。
 在web server上安装好gcc和gmake编译环境。
 
 编译php4的参数如下:
 
 ./configure --enable-experimental-zts --with-mysql=no \
 --with-nsapi=/usr/netscape/suitespot/ \
 --with-oracle=/data/oracle/app/8.1.5 \
 --with-oci8=/data/oracle/app/8.1.5 \
 --enable-libgcc --enable-sigchild
 
 其中的/usr/netscape/suitespot/是web server上的nes的安装路径,/data/ora cle/app/8.1.5是web server上的$ORACLE_HOME环境变量。--enable-libgcc是为 了避免采用libgcc++带来的reference symbol not found的错误,--eanble-sig child是为了避免oracle产生的僵尸进程<defunct>。
 
 如果在安装oracle8 client时候,没有按照install guide上所说的在安装完成后 设置oracle的一些目录的属性,可以把nobody用户加到dba组里,保证nobody用户 对tnsnames.ora文件有存取权限,否则PHP程序将会出现ORA-12154错误。也曾经 把web server设定为以oracle用户运行,结果是无法启动。
 
 确保ORACLE SERVER 正在运行,listener已经启动,然后就可以用PHP程序测试一 下远程连接ORACLE SERVER了。函数ocilogon的第三个参数是oracle_service_na me,不能省略。用ora函数的格式是ora_logon("scott@oracle_service_name","t iger"),至于这是为什么,我也不知道。
 
 以上一点东西,花了我3周的时间,写出来,供参考。
  -- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 210.78.146.16]
  | 
 
 
 |