APC (PHP Cache) çalışması nasıl yapılır?

5 Cevap php

Ben birden çok php dosya siteleri hızlandırır ki, APC okumuştum. Bu yüzden birçok dosya PHP ile bu özel proje var ve ben bu require_once keşfetmek ve (onları çalıştırmadan) yalnızca sınıf tanımlarını ayrıştırma çoğu zaman alır.

Yani benim CentOS 5 sunucu üzerinde APC yükledim. Benim sunucunuza apc.php taşındı ve görüntüler

Hits: 1 (50.0%)
Misses: 1 (50.0%)

Cached Files    1 (281.1 KBytes)

Ve ben web sitesi ve değişim alt sayfaları gidebilirsiniz ve böylece, ve apc.php hala sadece bir önbelleğe alınmış dosya gösterir?

Ve phpinfo in () o olduğunu gösterir:

APC Destek etkin

Ne yapacağımı bilmiyorum. APC çalışma (phpinfo () gibi sais) ya da değil mi? Sadece bir önbelleğe alınmış dosya benim web sitesinde bazı sayfalarını taramaya sonra çok değildir.

Ve daha fazla nasıl hataları teşhis ve APC çalıştığından emin olmak için? Ben gezindiğiniz

apc.mmap_file_mask / tmp / apc.QnLqNf / tmp / apc.QnLqNf

Bunun gerçekleşmesi gerektiğini phpinfo de belirtildiği gibi / tmp dizini ama orada apc herhangi bir dosya yok.

APC çalışıyor ve değilse, ne bir sorun olabilir eğer bana kontrol yardımcı olun.

5 Cevap

APC iki şekilde kullanılabilir:

  1. Bir opcode önbellek olarak. Siz destek çok bu çalışıyor etkin olması; ve
  2. Genel bir önbellek olarak. Bunu açıkça Bunun için API kullanmak zorunda.

(1) ana parası olduğunu. Bu "derleme" Dizelerin opcode sonuçlarını depolayarak betik çalıştırma süresini azaltır.

Bu ikinci, çalışma olarak installation instructions,

Note: On Windows, APC needs a temp path to exist, and be writable by the web server. It checks TMP, TEMP, USERPROFILE environment variables in that order and finally tries the WINDOWS directory if none of those are set.

Yani gerek (ya da herhangi bir etkinliği görmek) CentOS üzerinde olmamalıdır.

Söyleniyor, ihtiyaç / Require_once / include_once / autoload daha iyi ama dosyaların yüzlerce ile bu yaptığını sadece önemli gerektiğini içerir.

Temelde Sitenizin sonra içeren veya diğer dosyaları gerektiren bir PHP dosyası var mı? Bu sadece tek bir dosya olarak kayıt olabilirsiniz. Ayrıca, bildiğim kadarıyla, koşullu sadece bir söylenti olabilir ama / mantık gerektiren beklendiği gibi önbelleğe olmayabilir dahil!

Thr log dosyalarını kontrol ettin mi? Bir / var/log/apache2/error.log bakmak ya da ancak onun sizin dağıtım altında adında alır.

Ayrıca, php dosyaları APC önbelleği tarafından önbelleğe kaç kontrol sonra onlara 2-3 php dosyalarını, gelin thebrowser yapmaya, ve ..

APC hakkında emin değilim ama ben eaccelerator tavsiye ederim edilmedi (http://eaccelerator.net/). Ben bir süre önce test ettik ve gerçekten bir fark yaptık.

APC actually doesnt share cache between proceses. Try to configure your PHP-Process to fork Childs and let the Master PHP-Process stay running.

Bkz: How to share APC cache between several PHP processes when running under FastCGI?

http://www.litespeedtech.com/support/forum/showthread.php?t=3761

Her PHP süreç paylaşılmaz kendi önbellek, kullanmak gibi "APC PHP suEXEC'in ile iyi çalışmaz.

PHP SuEXEC'in kullanmanız gerekiyorsa eAccelerator + / dev / shm denemelisiniz. "

de aynı sorun var, PHP suEXEC'i + APC sorun gibi görünüyor