تعد ذاكرة التخزين المؤقت PHP البديلة (APC) عبارة عن ذاكرة تخزين مؤقت مجانية ومحسّنة للتعليمات البرمجية لـ PHP. يتم استخدامه لتوفير إطار عمل مجاني ومفتوح وقوي للتخزين المؤقت وتحسين كود PHP الوسيط.
الموقع الرسمي لـ APC هو http://pecl.php.net/package/apc .
عنوان التنزيل لوحدة التوسيع ضمن Windows هو http://www.sitebuddy.com/php/accelerators/apc_windows_binaries_builds
ضمن Windows، APC يتطلب دليل c:tmp، ويجب أن يكون الدليل قابلاً للكتابة بواسطة عملية خادم الويب.
1. قم بالتثبيت
كملحق PHP
2. قم بتكوين
خيار تحسينapc.enabled boolean
apc.optimization
. يمكن تغيير APC في البرنامج النصي.
شرح مفصل لخيارات تكوين PHP.ini
[APC]
؛ يتم استخدام ذاكرة التخزين المؤقت PHP البديلة للتخزين المؤقت وتحسين PHP الوسيط الكود
apc.cache_by_default = On
;SYS
; ما إذا كان سيتم تمكين التخزين المؤقت لجميع الملفات بشكل افتراضي.
إذا تم ضبطه على Off واستخدامه مع التوجيه apc.filters الذي يبدأ بعلامة الجمع، فسيتم تخزين الملفات مؤقتًا فقط إذا كانت تطابق مرشحًا.
apc.enable_cli = Off
;SYS
; ما إذا كنت تريد تمكين وظيفة APC لإصدار CLI، أم لا، قم بتشغيل هذا الأمر لأغراض الاختبار وتصحيح الأخطاء فقط.
apc.enabled = On
؛ ما إذا كان سيتم تمكين APC إذا تم تجميع APC بشكل ثابت في PHP وتريد تعطيله، فهذه هي الطريقة الوحيدة.
apc.file_update_protection = 2
;SYS
; عندما تقوم بتعديل الملفات على خادم قيد التشغيل، يجب عليك إجراء عمليات ذرية.
أي، اكتب أولاً إلى ملف مؤقت، ثم أعد تسمية الملف (mv) إلى الاسم النهائي.
لا تعمل برامج تحرير النصوص مثل cp وtar بهذه الطريقة، مما يؤدي إلى إمكانية تخزين الملفات غير المكتملة مؤقتًا.
القيمة الافتراضية 2 تعني أنه عند الوصول إلى ملف، إذا وجد أن وقت التعديل أقل من ثانيتين من وقت الوصول، فلن يتم إجراء أي تخزين مؤقت.
قد يحصل الزائر سيئ الحظ على محتوى تالف، لكن التأثير السيئ لا يتم تضخيمه عن طريق التخزين المؤقت.
إذا تمكنت من التأكد من أن جميع عمليات التحديث ذرية، فيمكنك إيقاف تشغيل هذه الميزة باستخدام 0.
إذا كان نظامك يتم تحديثه ببطء بسبب عمليات الإدخال والإخراج المكثفة، فقد تحتاج إلى زيادة هذه القيمة.
apc.filters =
;SYS
; قائمة مفصولة بفواصل من التعبيرات العادية الموسعة POSIX.
إذا كان اسم الملف المصدر يتطابق مع أي من الأنماط، فلن يتم تخزين الملف مؤقتًا.
لاحظ أن اسم الملف المستخدم للمطابقة هو اسم الملف الذي تم تمريره للتضمين/الطلب، وليس المسار المطلق.
إذا كان الحرف الأول من التعبير العادي هو "+"، فهذا يعني أنه سيتم تخزين أي ملف مطابق للتعبير
، إذا كان الحرف الأول هو "-"، فلن يتم تخزين أي تطابقات مؤقتًا. "-" هي القيمة الافتراضية ويمكن حذفها.
apc.ttl = 0
;SYS
; عدد الثواني المسموح لإدخال ذاكرة التخزين المؤقت بالبقاء فيها في المخزن المؤقت. 0 يعني عدم انتهاء المهلة مطلقًا. القيمة الموصى بها هي 7200 ~ 36000.
يعني الإعداد على 0 أن المخزن المؤقت قد يمتلئ بإدخالات ذاكرة التخزين المؤقت القديمة، مما يمنع تخزين الإدخالات الجديدة مؤقتًا.
apc.user_ttl = 0
;SYS
; يشبه apc.ttl، ولكن لكل مستخدم، القيمة الموصى بها هي 7200~36000.
يعني الإعداد على 0 أن المخزن المؤقت قد يمتلئ بإدخالات ذاكرة التخزين المؤقت القديمة، مما يمنع تخزين الإدخالات الجديدة مؤقتًا.
apc.gc_ttl = 3600
;SYS
; عدد الثواني التي يمكن أن يوجد فيها إدخال ذاكرة التخزين المؤقت في جدول تجميع البيانات المهملة.
توفر هذه القيمة إجراءً للسلامة، بحيث أنه حتى في حالة تعطل عملية الخادم أثناء تنفيذ ملف مصدر مخبأ
، وتم تعديل الملف المصدر، فلن تتم استعادة الذاكرة المخصصة للإصدار القديم حتى يتم الوصول إلى قيمة TTL هذه.
اضبط على الصفر لتعطيل هذه الميزة.
apc.include_once_override = Off
;SYS
; يرجى إبقائه قيد إيقاف التشغيل، وإلا فقد يؤدي ذلك إلى نتائج غير متوقعة.
apc.max_file_size = 1M
;SYS
; تعطيل تخزين الملفات الأكبر من هذا الحجم في ذاكرة التخزين المؤقت.
apc.mmap_file_mask =
;
; إذا تم تجميع دعم MMAP لـ APC باستخدام --enable-mmap (ممكّن افتراضيًا)،
فإن القيمة هنا هي قناع الملف بنمط mktemp الذي تم تمريره إلى وحدة mmap (القيمة الموصى بها هي "/tmp /APC XXXXXX").
يتم استخدام هذا القناع لتحديد ما إذا كان يجب أن تكون منطقة الذاكرة المعينة مدعومة بالملفات أو مدعومة بالذاكرة المشتركة.
لتعيين الذاكرة المباشرة المدعومة بالملفات، اضبطه على "/tmp/apc.XXXXXX" (6 X بالضبط).
لاستخدام نمط POSIX shm_open/mmap، يجب ضبطه على "/apc.shm.XXXXXX".
يمكنك أيضًا التعيين على "/dev/zero" لاستخدام واجهة kernel "/dev/zero" للذاكرة المعينة بشكل مجهول.
عدم تحديد هذا التوجيه يفرض استخدام التعيين المجهول.
apc.num_files_hint = 1000
; SYS
; العدد التقريبي لملفات المصدر المختلفة التي يمكن تضمينها أو طلبها على خادم الويب (القيمة الموصى بها هي 1024~4096).
إذا لم تكن متأكدًا، فاضبطه على 0؛ يُستخدم هذا الإعداد بشكل أساسي للمواقع التي تحتوي على آلاف الملفات المصدر.
apc.optimization = 0
؛ مستوى التحسين (القيمة الموصى بها هي 0).
؛ تتيح القيمة الصحيحة الموجبة للمُحسِّن استخدام القيم الأعلى لتحسينات أكثر قوة.
قد تحتوي القيم الأعلى على تحسينات محدودة للغاية في السرعة، ولكنها تجريبية حاليًا.
apc.report_autofilter = Off
;SYS
; ما إذا كان سيتم تسجيل جميع البرامج النصية التي لم يتم تخزينها مؤقتًا تلقائيًا لأسباب الربط المبكر/المتأخر.
apc.shm_segments = 1
;SYS
; عدد كتل الذاكرة المشتركة المخصصة للمخزن المؤقت للمترجم (القيمة الموصى بها هي 1).
إذا نفدت الذاكرة المشتركة لـ APC وتم ضبط التوجيه apc.shm_size على الحد الأقصى المسموح به من قبل النظام،
فيمكنك محاولة زيادة هذه القيمة.
apc.shm_size = 30
; SYS
; حجم كل كتلة ذاكرة مشتركة (بالميجابايت، القيمة الموصى بها هي 128~256).
تحتوي بعض الأنظمة (بما في ذلك معظم متغيرات BSD) على حجم كتلة ذاكرة مشتركة افتراضي صغير جدًا.
apc.slam_defense = 0
;
SYS (يُنصح باستخدام تعليمات apc.write_lock) ضد استخدام هذه التعليمات
؛
عمليات متعددة تحاول تخزين ملف مؤقتًا في نفس الوقت مما يؤدي إلى حدوث حالة سباق.
يتم استخدام هذا التوجيه لتعيين النسبة المئوية التي تتخطى بها العملية خطوة التخزين المؤقت عند معالجة الملفات غير المخزنة مؤقتًا.
على سبيل المثال، تعيينه على 75 يعني أن هناك احتمالًا بنسبة 75% لعدم التخزين المؤقت عند مواجهة ملف غير مخزن مؤقتًا، مما يقلل من فرصة الاصطدام.
يُنصح بضبطه على 0 لتعطيل هذه الميزة.
apc.stat = On
;SYS
; ما إذا كان سيتم تمكين التحقق من تحديث البرنامج النصي أم لا.
كن حذرًا جدًا عند تغيير قيمة التوجيه هذه.
تشير القيمة الافتراضية إلى أن APC يتحقق مما إذا كان البرنامج النصي قد تم تحديثه في كل مرة يتم طلبه فيها
؛ فإنه يقوم تلقائيًا بإعادة ترجمة المحتوى المترجم وتخزينه مؤقتًا. ومع ذلك، فإن القيام بذلك له تأثير سلبي على الأداء.
إذا تم ضبطه على إيقاف، فلن يتم إجراء أي فحص، وبالتالي تحسين الأداء بشكل كبير.
ولكن لكي يصبح المحتوى المحدث ساري المفعول، يجب عليك إعادة تشغيل خادم الويب.
هذا التوجيه صالح أيضًا لملفات التضمين/الطلب. ولكن تجدر الإشارة إلى أنه
إذا كنت تستخدم مسارًا نسبيًا، فيجب على APC التحقق من تحديد موقع الملف في كل مرة تتضمن/تطلب.
يمكن أن يؤدي استخدام المسارات المطلقة إلى تخطي عملية التحقق، لذا ننصحك باستخدام المسارات المطلقة لعمليات التضمين/الطلب.
apc.user_entries_hint = 100
;SYS
; يشبه التوجيه num_files_hint، ولكن لكل مستخدم مختلف.
إذا لم تكن متأكدًا، فاضبط على 0.
apc.write_lock = قيد التشغيل
؛ SYS
؛ ما إذا كان سيتم تمكين قفل الكتابة أم لا.
على خادم مزدحم للغاية، سواء بدء خدمة أو تعديل ملف،
قد تنتج حالة السباق عن عمليات متعددة تحاول تخزين ملف مؤقتًا في نفس الوقت.
قم بتمكين هذا التوجيه لتجنب ظروف السباق.
apc.rfc1867 = Off
;SYS
; بعد تشغيل هذا التوجيه، لكل ملف تم تحميله يحتوي على حقل APC_UPLOAD_PROGRESS قبل حقل الملف مباشرة
، سيقوم APC تلقائيًا بإنشاء إدخال ذاكرة تخزين مؤقت للمستخدم للتحميل_ (أي قيمة حقل APC_UPLOAD_PROGRESS).
3. الوظيفة
apc_cache_info - تسترد المعلومات المخزنة مؤقتًا (والبيانات التعريفية) من مخزن بيانات APC
apc_clear_cache - يمسح ذاكرة التخزين المؤقت لـ APC
apc_define_constants - يحدد مجموعة من الثوابت لاسترجاعها لاحقًا وتعريفها الشامل
apc_delete - يزيل المتغير المخزن من ذاكرة التخزين المؤقت
apc_fetch - جلب متغير مخزن من ذاكرة التخزين المؤقت
apc_load_constants - تحميل مجموعة من الثوابت من ذاكرة التخزين المؤقت
apc_sma_info - يسترد معلومات تخصيص الذاكرة المشتركة لـ APC
apc_store - تخزين متغير مؤقتًا في مخزن البيانات
استخدام apc بسيط نسبيًا، مع وظائف قليلة فقط، مذكورة أدناه.
يقوم apc_cache_info () بإرجاع معلومات ذاكرة التخزين المؤقت
. يقوم apc_clear_cache() بمسح محتوى ذاكرة التخزين المؤقت لـ apc.
بشكل افتراضي (لا توجد معلمات)، يتم مسح ذاكرة التخزين المؤقت للنظام فقط. لمسح ذاكرة التخزين المؤقت للمستخدم، استخدم المعلمة "المستخدم".
apc_define_constants (مفتاح السلسلة، ثوابت الصفيف [، bool case_sensitive]) أضف ثوابت الصفيف إلى ذاكرة التخزين المؤقت كثوابت.
apc_load_constants (مفتاح السلسلة).
إزالة ذاكرة التخزين المؤقت الثابتة.
apc_store (مفتاح السلسلة، var المختلط [، int ttl] ).
حفظ البيانات في ذاكرة التخزين المؤقت.
apc_fetch(مفتاح السلسلة).
احصل على محتوى ذاكرة التخزين المؤقت apc_delete (مفتاح السلسلة) المحفوظ بواسطة apc_store
.
احذف المحتوى المحفوظ بواسطة apc_store.
إدارة APC:
انتقل إلى pecl.php.net لتنزيل حزمة التعليمات البرمجية المصدرية لـ apc وهناك apc.php، وانسخها إلى مكان حيث يمكن لخادم الويب الخاص بك الوصول إليها، وتصفح للوصول إليها.
وظائف واجهة الإدارة هي:
1. تحديث البيانات
2. عرض إحصائيات المضيف
3. إدخالات ذاكرة التخزين المؤقت للنظام
4. إدخالات ذاكرة التخزين المؤقت للمستخدم
5. التحقق من الإصدار