Ошибка Apache - дочерний сигнал выхода pid 1789. Ошибка шины (10)
Вопрос
Я получаю эту странную ошибку child pid 1789 exit signal Bus error (10)
Я никогда раньше не видел этого в своем журнале ошибок Apache.Я использую платформу FuelPHP.Веб-приложение работает нормально.Но вдруг сегодня я создал новый контроллер, который сам по себе является копией другого контроллера.Тот, который я скопировал, работает нормально (http://localhost/myapp/admin/users), но копия (http://localhost/myapp/admin/apartments) вызывает у меня эту ошибку?!Я расстроен этим.
После 3 часов отладки я наконец нашел линию, на которой все заканчивается.Он находится в ядре FuelPHP в классе Router в этой строке. if (class_exists($class))
.Тем $class
до того, как if имеет значение 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 отметил, что это может быть связано с оборудованием.Но это не так.Я перенес все это на другой компьютер и все равно то же самое.Я просто не понимаю.Что здесь происходит?
Решение
Хорошо, пристрели меня.Только что нашел ошибку сам.Я не знаю, почему это происходит, но у меня в контроллере возникла синтаксическая ошибка. 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.Странно, просто странно...
Другие советы
Это совершенно другое решение, но связанное с «ошибкой сигнальной шины»:Я получил это, когда случайно вошел 512MB
а не просто 512M
в настройке Memory_limit моего php.ini.