2012-01-11 74 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