سؤال

لقد استنفدت كل الحيل في كتابي.لن يقوم Magento بتسجيل أي شيء على الإطلاق، ولتصحيح الأخطاء، قمت بإدخال مكالمتين لتسجيل الدخول index.php

if (isset($_SERVER['MAGE_IS_DEVELOPER_MODE'])) {
    Mage::setIsDeveloperMode(true);
    Mage::log("WOOOOPIE");
    error_log("Go sell your fur");
}
  • يعمل php error_log ويسجل إلى /var/log/Apache2/error.log
  • {{Magento dir}}/var/log/system.log وexception.log فارغان.
  • في لوحة الإدارة، ضمن التكوين > المطور، قمت بتمكين ملف التعريف وتسجيل الأخطاء.
  • الدليل var بأكمله مملوك لـ www-data وchmod'ed 777، لقد قمت بفحصه ps aux و envvars لتأكيد تشغيل Apache كـ www-data.
  • تم مسح كافة ذاكرات التخزين المؤقت بشكل متكرر، ثم تم تعطيلها.
  • يحتوي ملف Index.php على الإعداد الافتراضي error_reporting(E_ALL | E_STRICT); تعيين.

وهنا أذونات system.log، اضطررت إلى ذلك touch بنفسي.

namei -ml /var/www/nslocal/var/log/system.log`
f: /var/www/nslocal/var/log/system.log
drwxr-xr-x root     root     /
drwxr-xr-x root     root     var
drwxrwxr-x root     www-data www
drwxrwxr-x www-data ci       nslocal
drwxrwxrwx www-data ci       var
drwxrwxrwx www-data ci       log
-rwxrwxrwx www-data ci       system.log

لقد حاولت حتى إعادة التشغيل.بدون عمل السجل، لا يمكنني تصحيح سبب عدم قيام Magento بإرسال رسائل البريد الإلكتروني، على الرغم من عمل php وsendmail بشكل صحيح.هل لدي شبح؟

هل كانت مفيدة؟

المحلول

مما أفهمه، لن يعمل برنامج Mage logger في وقت مبكر جدًا من تشغيل التطبيق.

إذا نظرت إلى وظيفة Mage::log نفسها، ستجد:

if (!self::getConfig()) { return; }

بما أن Mage::getConfig() سترجع قيمة فارغة حتى تتم تهيئة تكوين التطبيق لاحقًا داخل الدالة Mage::run()، ستخرج الدالة Mage::log دون القيام بأي شيء عند استدعائها من ملف Index.php.

لاختبار عمل التسجيل بالفعل، حاول إجراء الاختبار لاحقًا، ربما في Mage_Core_Controller_Varien_Front::dispatch الذي يناسبني.

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