PHP unixODBC Apache Segfault

时间:2011-08-09 15:46:23

标签: php apache odbc unixodbc

我可以从命令行运行我的脚本:php test.php并且它连接,返回我的简单查询,然后断开与oracle的连接。我跑的时候:

isql -v dsn uname pw

它连接,我也可以查询。问题是当我从浏览器运行脚本时,我得到一个很棒的500错误和一个段错误作为我的日志文件中的礼物。现在apache没有编译用于调试(这很烦人)。我希望不必通过调试重新安装apache。

我正在使用: PHP:

PHP 5.3.6 (cli) (built: Mar 17 2011 20:56:13)
Copyright (c) 1997-2011 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies
    with eAccelerator v0.9.6.1, Copyright (c) 2004-2010 eAccelerator, by eAccelerator

的Apache:

Server version: Apache/2.2.17 (Unix)
Server built:   Oct 27 2010 10:04:21
Server's Module Magic Number: 20051115:25
Server loaded:  APR 1.4.5, APR-Util 1.3.12
Compiled using: APR 1.3.9, APR-Util 1.3.9
Architecture:   64-bit

Oracle客户端:

client64, both sdk and instant client

Linux内核:

2.6.35.13-91.fc14.x86_64

的unixODBC:     unixODBC.x86_64 2.2.14-12.fc14(来自yum)

我甚至无法运行高级调试或登录php,因为一旦我转到浏览器中的URL,apache / php就会退出。

我目前正试图看看我是否可以跑:

<?php exec('php test.php'); ?>

看看我是否可以暂时解决这个问题。如果需要,我很乐意分享其他任何内容。

1 个答案:

答案 0 :(得分:1)

我猜它几乎可以肯定(鉴于你是在64位平台上),因为你使用的unixODBC正在构建sizeof(SQLLEN)== 4,这是2.2.x的默认值,而sizeof( SQLLEN)== 8这是2.3.x构建的。