php和oracle问题!

skyxu 2000-11-02 12:19:00
遇到一个很奇怪的问题,百思不得起解,我现在用linux+apache+php做web server,
用oracle+solaris为database,现在工作一切正常,只是我发现一个很奇怪的情况,
就是用netstat看,会有很多连向数据库的连接是TIME_WAIT,要到多60秒后,大概
超时连接自动停止,虽然不影响访问,但是如果大访问的话连接数太多的话那会造成
很多连接,这样linux就会边得无法连接!
而且出现这种情况的时候用netstat -e -p,会看出这些连接没有任何程序与他相关,
而且是由root来执行,而不是由nobody这个帐号来执行。
不知道是否有大虾清楚?!!
高分请教!!![root@linux2 /root]# netstat -e -p
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp 0 192 linux2:www 192.168.1.187:4782 ESTABLISHED nobody 3683849 3832/httpd
tcp 0 0 linux2:2415 sun:38862 TIME_WAIT root 0 -
tcp 0 7352 linux2:www 192.168.1.187:4781 ESTABLISHED nobody 3683840 3834/httpd
tcp 0 0 linux2:2413 sun:38863 TIME_WAIT root 0 -
tcp 0 0 linux2:2412 sun:1521 TIME_WAIT root 0 -
tcp 0 0 linux2:2411 sun:38854 TIME_WAIT root 0 -
tcp 0 0 linux2:2409 sun:38855 TIME_WAIT root 0 -
tcp 0 0 linux2:2407 sun:38856 TIME_WAIT root 0 -
tcp 0 0 linux2:2405 sun:38857 TIME_WAIT root 0 -
tcp 0 0 linux2:2403 sun:38858 TIME_WAIT root 0 -
tcp 0 0 linux2:cvspserver sun:38859 TIME_WAIT root 0 -
tcp 0 0 linux2:2399 sun:38861 TIME_WAIT root 0 -
tcp 0 0 linux2:2397 sun:38862 TIME_WAIT root 0 -
tcp 0 0 linux2:2395 sun:38863 TIME_WAIT root 0 -
tcp 0 0 linux2:2393 sun:38855 TIME_WAIT root 0 -
tcp 0 0 linux2:2391 sun:38856 TIME_WAIT root 0 -
tcp 0 0 linux2:2387 sun:38858 TIME_WAIT root 0 -
tcp 0 0 linux2:2385 sun:38859 TIME_WAIT root 0 -
tcp 0 0 linux2:2383 sun:38863 TIME_WAIT root 0 -
tcp 0 0 linux2:2381 sun:38857 TIME_WAIT root 0 -
tcp 0 0 linux2:2379 sun:38859 TIME_WAIT root 0 -
tcp 0 0 linux2:2377 sun:38863 TIME_WAIT root 0 -
tcp 0 0 linux2:2375 sun:38857 TIME_WAIT root 0 -
tcp 0 0 linux2:2374 sun:1521 TIME_WAIT root 0 -

...全文
242 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
peacock 2000-12-02
  • 打赏
  • 举报
回复
Linux下用PHP4连接ORACLE8I的方法(转载)

1. 下载并安装 Oracle 8i for linux.
完全安装,不要只安装客户端
下载地点:chat.hn.cninfo.net/soft的hot下载

2. 下载PHP3或PHP4源码
下载地点:www.php.net www.phpuser.com chat.hn.cninfo.net/soft

3. 配置PHP的安装参数
for php 4:
./configure --with-apxs=/usr/sbin/apxs
--prefix=/usr
--with-gd
--enable-versioning
--with-mysql=/usr
--with-oracle=/usr/local/oracle/8i/u01/app/oracle/product/8.1.5
--with-oci8=/usr/local/oracle/8i/u01/app/oracle/product/8.1.5
--with-zlib
--with-dbase
--with-filepro
--with-config-file-path=/etc/httpd/conf
--with-fdftk=no
--enable-debug=no
--enable-magic-quotes
--enable-debugger
--enable-bcmath
--enable-track-vars
--enable-safe-mode
--with-exec-dir=/usr/bin
--with-system-regex
--no-create
--no-recursion

--with-oracle 选项让php可以通过ORA_函数访问 Oracle 7.x 或8.x
--with-oci8 选项让php可以使用更多更好的 oci8函数

4. make

5. make install

6. cp ./php.ini-dist /wherever/your/conf/files/are/php.ini
将php.ini拷贝到适当的位置

7. 修改httpd.conf
修改如下这一行
LoadModule php4_module lib/apache/libphp4.so
改为:
LoadModule php4_module /usr/lib/apache/libphp4.so

8. 重新启动APACHE

9. 测试PHP4的安装是否成功
创建一个test.php3内容为:
<? phpinfo(); ?>
在浏览器中访问它,看是否有ORACLE和ORACLE8的信息。
如果有的话,那么就恭喜你了!

10. 现在开始使用ORACLE的函数吧
<?
// 设置ORACLE环境变量
putenv("ORACLE_SID=PROD");
putenv("ORACLE_HOME=/usr/local/oracle/8i/u01/app/oracle/product/8.1.5");

// 建立连接
// 修改现在的user_id,password,db以适应你的配置
if($conn = OCILogon("user_id","password","db"))
{
// 取得数据库的信息
printf("%s</P>", OCIServerVersion($conn));
}
else
{
printf("Conncetion Failed");
}
?>
这段程序会显示出你所连接到的ORACLE的一些信息

12. 其它
如果你需要连接到远程的ORACLE服务器,你就还需要设置你的sqlnet.ora 和 tnsnames.ora 来指定远程数据库的位置。
向数据库管理员要求,拷贝一些文件放到$ORACLE_HOME/network/admin/ 目录下
skyxu 2000-11-07
  • 打赏
  • 举报
回复
没有人知道吗???

21,882

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧