今天我尝试安装 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。
最佳答案
我使用以下配置命令安装了最新的 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
我将此行更改为新编译的 libphp5.so 路径:
LoadModule php5_module/home/YourUsername/php-5.6.0RC3/libs/libphp5.so
但您也可以覆盖此文件以避免困惑。
关于php - Mysqli 段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25067542/