gpt4 book ai didi

PHP编程段错误

转载 作者:可可西里 更新时间:2023-11-01 13:28:49 25 4
gpt4 key购买 nike

我一直在使用以下方法编写网站:

  1. Zend Framework 1.11.5(完整的 MVC)
  2. PHP 5.3.6
  3. Apache 2.2.19
  4. VPS 上的 CentOS 5.6 i686 virtuozzo
  5. cPanel WHM 11.30.1(构建 4)
  6. Mysql 5.1.56-log
  7. Mysqli API 5.1.56

突然对 mysql 执行一些“SHOW CREATE TABLE”查询,我明白了。

[Wed Jul 20 17:35:23 2011
] [notice] EACCELERATOR(5827): PHP crashed on opline 138 of fetch_fields() at /usr/lib/php/Zend/Db/Statement/Mysqli.php:235

我试过禁用加速器但没有成功

[Wed Jul 20 17:45:34 2011] [warn] [client 190.78.208.30] (104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server
[Wed Jul 20 17:45:34 2011] [error] [client 190.78.208.30] Premature end of script headers: index.php
[Wed Jul 20 17:45:34 2011] [error] mod_fcgid: process /usr/local/cpanel/cgi-sys/php5(11562) exit(communication error), get unexpected signal 11
[Wed Jul 20 17:45:34 2011] [warn] [client 190.78.208.30] (104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server
[Wed Jul 20 17:45:34 2011] [error] [client 190.78.208.30] Premature end of script headers: index.php

有问题的行是这样的:$row = $db->fetchRow("SHOW CREATE TABLE 222AFI ");。如果我在它执行之前返回,一切都会好起来的。 $db 是 Zend_Db_Adapter_Mysqli 的实例。最糟糕的是这不是确定性的。该程序有时可以通过,有时则不能。通常它不会在不使 php 崩溃的情况下通过该行。

<?php
class Admin_DbController extends Controller_BaseController
{
/**
*
*/
public function updateSqlDefinitionsAction()
{
$db = Zend_Registry::get('db');
$row = $db->fetchRow("SHOW CREATE TABLE 222AFI");
}
}
?>

我没有写信给 internals@lists.php.net 因为我没有 https://bugs.php.net/bugs-generating-backtrace.php .这可能很愚蠢,但我尝试使用“--enable-debug”重新编译 apache(这是一个生产服务器)。然而,“PHP Apache 模块:运行 httpd -X,并访问使 PHP 崩溃的脚本”是我没有工作的部分。服务器告诉我端口 80 已被使用。

谁能给我一些建议?如果我正在做一些疯狂的事情,至少还有一些其他选择?

我可以尝试在午夜重新编译 apache,但很高兴知道我不会破坏任何东西。您如何看待这对我来说非常重要。

编辑:

我必须使用 --enable-debug 编译 php。这很奇怪,它并没有像往常一样崩溃。这很难,20 次尝试中可能有一次崩溃。如果使用 -X 启动 apache,则更难让 php 崩溃,因为 httpd 响应时间太长。

EDIT2:

即使在 20 次尝试之后,如果我在没有 -X 标志的情况下启动 httpd,我也可以让它崩溃。但是我模拟了一个初始化 $_SERVER 变量的脚本,使 Zend 相信它是通过浏览器调用的。当我多次使用“php crash.php”执行此脚本(如 50 次)时,一切正常。我开始相信它与 php 重用进程有关。我正在使用 mod_fcgi 运行 apache 并且:

Server version: Apache/2.2.19 (Unix)
Server built: Jul 20 2011 19:18:58
Cpanel::Easy::Apache v3.4.2 rev9999
Server's Module Magic Number: 20051115:28
Server loaded: APR 1.4.5, APR-Util 1.3.12
Compiled using: APR 1.4.5, APR-Util 1.3.12
Architecture: 32-bit
Server MPM: Prefork
threaded: no
forked: yes (variable process count)
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/prefork"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=128
-D HTTPD_ROOT="/usr/local/apache"
-D SUEXEC_BIN="/usr/local/apache/bin/suexec"
-D DEFAULT_PIDLOG="logs/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_LOCKFILE="logs/accept.lock"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"

最佳答案

请看https://bugs.php.net/bug.php?id=55414 ,终于有人接受了。部分解决方案比我的实现得更好。

关于PHP编程段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6769515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com