Mysqli分段错误

时间:2014-07-31 19:38:55

标签: php mysql mysqli segmentation-fault

今天我尝试安装Xdebug,然后安装Netbeans,Netbeans chrome扩展等等,突然我创建新mysqli对象的PHP脚本无法正常工作:

<?php
    $connection = new mysqli('localhost', 'root','mysqlsamplepassword', 'Test_Database');
?>

当登录凭据错误时,我会收到正确的警告,但是当它们正常时,网络浏览器会显示ERR_EMPTY_RESPONSE错误。在apache.log中我可以找到:

[Thu Jul 31 20:54:24.658848 2014] [core:notice] [pid 9797] AH00051: child pid 9814 exit signal Segmentation fault (11), possible coredump in /etc/apache2

根据涉及此事的其他stackoverflow问题,我通过gdb进行了回溯:

(gdb) attach 9797
(...)
0x00007ff3d584fc13 in __select_nocancel ()
    at ../sysdeps/unix/syscall-template.S:81
81  ../sysdeps/unix/syscall-template.S: There's no such file or directory
(gdb) backtrace full
#0  0x00007ff3d584fc13 in __select_nocancel ()
    at ../sysdeps/unix/syscall-template.S:81
No locals.
#1  0x00007ff3d5d66d65 in apr_sleep ()
   from /usr/lib/x86_64-linux-gnu/libapr-1.so.0
No symbol table info available.
#2  0x00007ff3d663a401 in ap_wait_or_timeout ()
No symbol table info available.
#3  0x00007ff3d2e92076 in ?? ()
   from /usr/lib/apache2/modules/mod_mpm_prefork.so
No symbol table info available.
#4  0x00007ff3d663998e in ap_run_mpm ()
No symbol table info available.
#5  0x00007ff3d6633166 in main ()
No symbol table info available.
(gdb) 

不幸重新安装apache2,php5-mysql没有帮助。 PDO扩展可以工作,但我的所有脚本都基于mysqli。

1 个答案:

答案 0 :(得分:0)

我使用此配置命令安装了最新的php(5.6.0RC3,因为我使用了开发预览版本):

./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=mysqlnd --with-mysqli=mysqlnd

不幸的是它没有交换旧的php5模块。在etc/apache2/mods-enabled/php5.load我找到了加载的php模块:

LoadModule php5_module /usr/lib/apache2/modules/libphp5.so

我将此行改为newely compilled libphp5.so路径:

LoadModule php5_module /home/YourUsername/php-5.6.0RC3/libs/libphp5.so

但您也可以覆盖此文件以避免混乱。