2012-01-11 75 views
1

我得到这个奇怪的错误child pid 1789 exit signal Bus error (10)我从来没有见过我的Apache错误日志。我正在使用FuelPHP框架。网络应用程序工作正常。但是今天我突然创建了新的控制器,它本身就是另一个控制器的副本。我从一个复制的工作正常(http:// localhost/myapp/admin/users),但副本(http:// localhost/myapp/admin/apartments)使我出现错误?!我对此感到沮丧。Apache错误 - 孩子pid 1789退出信号总线错误(10)

经过3个小时的调试,我终于找到了整个事情停止的地方。它位于路由器类的FuelPHP核心中,位于此行if (class_exists($class))。之前的$class如果有值Controller_Admin_Apartments,这是我添加并存在于我的控制器类文件夹中的类。

燃料/核心/班/ router.php:

protected static function parse_segments($segments, $namespace = '', $module = false) 
{ 
    $temp_segments = $segments; 

    foreach (array_reverse($segments, true) as $key => $segment) 
    { 
     $class = $namespace.'Controller_'.\Inflector::words_to_upper(implode('_', $temp_segments)); 
     array_pop($temp_segments); 
     if (class_exists($class))  // ***** HERE ERROR HAPPENS ***** // 
     { 
      return array(
       'controller' => $class, 
       'action'  => isset($segments[$key + 1]) ? $segments[$key + 1] : null, 
       'method_params' => array_slice($segments, $key + 2), 
      ); 
     } 
    } 

    // Fall back for default module controllers 
    if ($module) 
    { 
     $class = $namespace.'Controller_'.$module; 
     if (class_exists($class)) 
     { 
      return array(
       'controller' => $class, 
       'action'  => isset($segments[0]) ? $segments[0] : null, 
       'method_params' => array_slice($segments, 1), 
      ); 
     } 
    } 
    return false; 
} 

FeulPHP forum用户注意到这涉及可能是硬件。但事实并非如此。我把整个东西移到另一台电脑上,仍然有相同的事情。我只是不明白。这里发生了什么?

回答

1

好吧拍我。刚发现我的自我错误。我不知道它为什么会发生,但我的控制器Controller_Admin_Apartments中有一个合成器错误。我有这个功能:

public function action_delete($id = null) 
{ 
    if (apartment = Model_Apartment::find($id)) 
    { 
     $apartment->delete(); 
     Session::set_flash('success', 'Deleted apartment #'.$id); 
    } 
    else 
    { 
     Session::set_flash('error', 'Could not delete apartment #'.$id); 
    } 
    Response::redirect('admin/apartments'); 
} 

注行:if (apartment = Model_Apartment::find($id)),在那里我忘了添加在前方变量名$。我真的很惊讶FulePHP框架没有提醒我这个,我唯一的错误是在Apache错误日志中:S。奇怪,才怪......

0

这是一个完全不同的解决方案,但相关的“信号总线错误”:我得到这个,当我在php.ini中的memory_limit的设置误入512MB而不仅仅是512M