خطأ أباتشي - معرف الطفل 1789 خطأ ناقل إشارة الخروج (10)

StackOverflow https://stackoverflow.com/questions/8828146

  •  27-10-2019
  •  | 
  •  

سؤال

أحصل على هذا الخطأ الغريب child pid 1789 exit signal Bus error (10) لم أر من قبل في سجل أخطاء Apache الخاص بي.أنا أستخدم إطار عمل FuelPHP.تطبيق الويب يعمل بشكل جيد.ولكن فجأة اليوم قمت بإنشاء وحدة تحكم جديدة، والتي هي في حد ذاتها نسخة من وحدة تحكم أخرى.النسخة التي نسختها تعمل بشكل جيد (http://localhost/myapp/admin/users)، لكن النسخة (http://localhost/myapp/admin/apartments) تجعلني أرتكب هذا الخطأ؟!أنا محبط بسبب هذا.

بعد 3 ساعات من التصحيح، وجدت أخيرًا الخط الذي تتوقف عنده الأمور برمتها.إنه موجود في قلب FuelPHP في فئة جهاز التوجيه في هذا الخط if (class_exists($class)).ال $class قبل إذا كان له قيمة Controller_Admin_Apartments, ، وهي الفئة التي أضفتها وهي موجودة في مجلد فئات وحدة التحكم الخاصة بي.

الوقود/الأساسية/الفئات/جهاز التوجيه.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.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top