سؤال

لقد مكنت مؤخرا APC على خدمتنا، وأحيانا عندما نقوم بنشر مدونة جديدة أو تغييرات نكتشف أن الملفات المصدر التي تم تغييرها بدء رمي الأخطاء التي لا تنعكس في التعليمات البرمجية، عادة تحليل الأخطاء واصفا رمز مميز غير موجود. لقد تحققنا من هذا عن طريق تشغيل php -l على الملفات وتقول سجلات الخطأ تتأثر. عادة ما تكون إعادة نشر على إصلاح المشكلة. نحن نستخدم PHP 5.2.0 و APC 3.01.9. سؤالي هو، وقد أي شخص آخر من ذوي الخبرة على هذه المشكلة أو لا أحد يدرك ما هي مشكلتنا؟ إذا كان الأمر كذلك، كيف يمكنك إصلاحه أو كيف يمكننا إصلاحه؟

وتحرير: وربما ينبغي إضافة بعض التفاصيل عن عملية النشر لدينا. يتم دفع المحتوى إلى خوادم الإنتاج عبر رسينك من خادم التدريج. نحن تمكين apc.stat_ctime لأنه قال هذا يساعد أشياء تشغيل أكثر سلاسة مع رسينك. apc.write_lock على افتراضيا ونحن لم تعطيله. كما سبق لapc.file_update_protection.

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

المحلول

ويبدو وكأنه يتم قراءة ملف نشرت جزءا مؤقتا كما كسر. apc.file_update_protection تم تصميمه ل مساعدة في وقف هذا.

وفي ملف php.ini: apc.file_update_protection integer

<اقتباس فقرة>   

وإعداد apc.file_update_protection   يضع تأخير في التخزين المؤقت العلامة التجارية الجديدة   الملفات. الافتراضي هو 2 ثانية التي   يعني أنه إذا كان التعديل   الطابع الزمني (وقت أخر تعديل) على ملف يظهر أن   هو أقل من 2 ثانية القديم عندما   يتم الوصول إليها، لن يكون مؤقتا عليه.   الشخص المؤسف الذي الوصول   وهذا ملف مكتوب نصف لا تزال ترى   غرابة، ولكن على الأقل أنها لن   ثابر.

وبعد السؤال الذي حرره: سبب واحد وأنا لا أرى هذه الأنواع من المشاكل هو أنني دفع نسخة جديدة كاملة من الموقع (مع تصدير SVN). إلا بعد أن يتم الانتهاء بشكل كامل فإنه يصبح visable إلى أباتشي / Mod_php (انظر جوابي <لأ href = "https://stackoverflow.com/questions/800294/how-to-get-started-deploying-php-applications-from -A-التخريب-مستودع / 820639 # 820639 "> كيف تبدأ نشر تطبيقات PHP من مستودع التخريب؟ )

والشيء الآخر الذي قد يحدث بالطبع، هو أنه إذا كنت تقوم بتحديث في مكان، قد يكون تحديث الملفات التي تعتمد على الآخرين التي لم يتم تحميلها بعد. رسينك يمكن أن تضمن فقط التحديثات الذرية لملفات فردية، وليس كامل المجموعة التي يتم تغييرها / مرفوع. وهناك سبب آخر وأعتقد أن لتحميل الموقع اون الشامل، وعندها فقط دخلت حيز الاستخدام.

نصائح أخرى

وهذا يبدو وكأنه APC لا preforming أو الحصول على المعلومات الصحيحة ملف القانون الأساسي. هل يمكن التحقق من ذلك للتأكد من APC التكوين APC. تم تعيين الرقم بشكل صحيح. آخر شيء يمكن أن يفعل ذلك قوة ذاكرة التخزين المؤقت لمسح مع apc_clear_cache ( ) عند نشر القانون الجديد.

ولم ير ذلك من قبل، حتى إذا أنا مستخدم ضخمة من APC. ربما في محاولة لتحريك السيناريو الذي تفريغ شفرة تشغيل APC في كل مرة تقوم بإرسال الرمز الجديد على الخادم؟

وعندما تحصل على ملف مع خطأ تحليل، والعودة عنه، ثم repubish. خذ نفس الملفات التي تعمل الآن والقيام فرق ضد الملف مع الخطأ تحليل.

وctime يعني وقتا الخلق. هل تريد أن تدفق ذاكرة التخزين المؤقت بالكامل يدويا في كل مرة تفعل التحديثات.

ويمكنك القيام بذلك بسهولة، من خلال وضع السيناريو apc.php في مكان ما على الخادم الخاص بك. هذا السيناريو يتيح لك تخزين الإحصاءات، وسوف يسمح لك لإسقاط مخبأ تماما.

والسيناريو يأتي مع APC.

وHopet له يساعد، إيفرت

وهذا هو ربما يحدث بسبب وجود عدم تطابق بين التعليمات البرمجية الخاصة بك، والإصدارات مؤقتا من التعليمات البرمجية.

وعلى سبيل المثال، APC لديها النسخة المخبأة من User.php، ولكن يمكنك إجراء تغييرات على User.php أو البيانات التي يستخدمها العضو. النسخة المخبأة لا يزال قيد التشغيل حتى بعد نشر الخاص بك، لأنها لم تنته بعد.

إذا مسح إدخالات ذاكرة التخزين المؤقت APC الخاص بك عند نشر، يجب أن تختفي هذه المسألة.

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