APC, PHP 5.4 veya PHP 5.5 ile uyumlu mu?


103

Görünüşe göre APC, php 5.4 sürümüyle aynı zamana denk gelecek şekilde güncellendi (keşke başlangıçta planlandığı gibi PHP çekirdeğine APC'yi dahil etselerdi).

Mevcut APC'nin php 5.4+ ile çalışıp çalışmadığına kesin bir cevap bulamıyorum. Php 5.4 için Ubuntu paketlerini bulmayı başardım, ancak php-apc paketleri yüklenmiyor.


2
Anladığım kadarıyla bir apt-get kurulumu yapıyorsunuz. Pek çok kurulumu denediniz mi?
Darragh Enright

Evet, bu gerçekten işe yaradı. Teşekkür ederim. Ve ortaya çıktığı gibi, APC, özellikle yeni özellikler işlevselliğini kullanırken 5.4 ile iyi çalışıyor.
Greywire 08

1
@Darragh [Sadece bilmenizi isterim] bu konuda çok büyük bir ödül var, bir cevap vermek isteyebilirsiniz.
Tiberiu-Ionuț Stan

1
Hayır öyle değil. Son sürümü
2012'deydi

Yanıtlar:


163

Zend OPCache PHP 5.5'e dahildir

21 Mart 2013 tarihinde, "Zend OPCache" dahil olmak üzere PHP 5.5 beta 1 piyasaya sürüldü - Görünüşe göre bu, PHP çekirdeğine dahil olduğu için ileriye dönük APC'nin yerini alacak ve her yeni için muhafaza edilmesi gerekecek. serbest bırakmak.

APC'ye opcode önbelleğe alma konusunda güvenenlere, kodlarını yaklaşan yerleşik işlem kodu önbelleğiyle test etmelerini ve kararlı bir son sürüm sağlamak için karşılaşılan sorunları geri bildirmelerini kişisel olarak tavsiye ederim.

Bunun APC'nin geleceği için ne anlama geldiğini bilmiyorum.

PHP 5.4+ İÇİN APC HALA BETA OLARAK BAYRAKLI

Bu, geliştiricilerin tamamen kararlı olduğunu düşünmedikleri anlamına gelir . Pek çok insan mevcut SVN sürümlerinde hiçbir sorun yaşamazken, belirli konfigürasyonlar veya ağır yük altındaki kişilerden gelen uç vakalar konusunda hala garip raporlar var.

Eğer bir üretim ortamında kullanmak istediğiniz her şeyi olduğu gibi, emin iyice herhangi salınımını (beta testi yapmak veya gelişiminde kararlı) ya da ortamları üretim öncesi ilk . Bu, yük testini içerir!

3.1.13 sürümünden itibaren, SVN deposuna yapılan kayıtlar bir şekilde yavaşladı ve hata listesinde bu kadar yeni ekleme bulunmuyor. Bunu ne yaparsan yap.

10 Aralık 2012 21: 05'te Rasmus Lerdorf şunu yazdı:

APC şu anda 5.4'te, 5.3'te sahip olduğumuzdan daha fazla uç durum olduğunu düşünmediğim noktada. İkisi de mükemmel değil, ancak sitelerin çoğu için yeterince yakın.

C / gdb becerilerine ve biraz boş zamana sahip herkesin, hata listesini gözden geçirmesi ve herhangi bir şeyi düzeltip düzeltemeyeceğini veya hepimizin güvendiği bu ücretsiz açık kaynak ürünü iyileştirip iyileştiremeyeceğini görmesi önerilir.

Alternatif çözümler mevcuttur, Wikipedia, PHP hızlandırıcılarının bir listesini sağlar .

13 Şubat 2013'te Zeev Suraski , Zend Optimizer + kaynak kodunun kullanılabilirliğini duyurdu .

Bir sonraki ana sürümde (5.5'ten sonraki sürüm) Zend Optimizer + 'ı PHP çekirdeğine entegre etme hakkında oldukça uzun bir tartışma yapıldı . Böyle bir durumda, insanlar önceden Zend Optimizer + ile tanışmak isteyebilirler.


APC 3.1.14'ü kullanmayın

APC 3.1.14, keşfedilen ancak henüz izlenemeyen bazı ciddi bellek sorunları nedeniyle PECL indirmelerinden kaldırıldı .

Zaten 3.1.14 kullanıyorsanız, 3.1.15 yayınlanana kadar eski sürüme geçmek isteyebilirsiniz. Unutma, bu hala beta . Hiç kullanıyorsanız, riski size ait olacak şekilde kullanıyorsunuzdur.

2013/01/02 :
APC 3.1.14 mevcuttur , diğer böcek adil dizi sorunun yanında, PHP 5.5 uyumluluğu ekleyerek .

Hala beta


2012-09-03 :
APC 3.1.13 kullanıma sunuldu ve birkaç segment hatası düzeltildi .


2012-08-16 :
Bir APC 3.1.12 etiketi oluşturuldu, ancak yine de beta olarak işaretlendi , APC PECL sayfasında ve değişiklik günlüğünde mevcut .

Bu sefer bin_dump ile ilgili birçok hata düzeltildi.


2012-07-19 :
Bir APC 3.1.11 etiketi oluşturuldu, ancak yine de beta olarak işaretlendi , APC PECL sayfasında ve değişiklik günlüğünde mevcut . İlgili posta listelerini takip ediyorum ve hala aktif olarak APC hatalarını düzeltmek için çalışıyorlar, ancak bu karmaşık bir modül ve pek çok kişi göreve hazır görünmüyor. Bu sürüm, dosyalar dahil edilirken kötü stat = 0 hatalarını düzeltir.


2012-04-11 : Bugün
bir APC 3.1.10 etiketi oluşturuldu ve APC PECL sayfasına
3.1.10 beta sürümü yerleştirildi
Değişiklik günlüğü şunları belirtir:

  • PHP 5.4 desteği ekleyin (Dmitry, Anatoliy, Pierre)
  • Sabit hata # 22679: Sabitler için apc_bin_dump düzeltildi. Nitelenmemiş olanlar dahil tüm sabitleri işlemek için IS_CONSTANT_TYPE_MASK kullanın (~ IS_CONSTANT_INDEX kontrolü yerine)
  • 23822 numaralı hata düzeltildi, apache yeniden başlatıldığında php çöküyor

1
sadece şunu yazın: "pecl install apc-3.1.10" ve sonra
libphp5.so'yu

Apt-get on ubuntu 12 aracılığıyla Ekim 2012'de kullanılıyor. Temiz ve kararlı!
JustinP

Zend OpCache ve APC blogs.oracle.com/opal/entry/using_php_5_5_s ile ilgili bu makaleye bir göz atın ve bu konu bugs.php.net/bug.php?id=64625
riotera

10

PHP 5.4.7 ve APC 3.1.13'ten itibaren (ve hatta 2012-09-19'dan itibaren APC SVN trunk), "uyumlu" olmasına rağmen, özellikle PHP- kullanıyorsanız, ağır yüke sahip sunucularda kararlı değildir. FPM ve $ GLOBALS. APC'deki geliştirici tartışmalarından bazıları çözülmemiş yan vakalardan bahsediyor .

Bu soruyu sorulduktan 6 ay sonra yanıtlıyorum çünkü sorun hala yaygın ve bu ileti dizisine benimki gibi bir yanıt olmadan karşılaşmak, APC ile PHP 5.4'e sıçrayıp yanmamı sağlayan şeydi. Umarım bu, insanların biraz acıdan kaçınmasına yardımcı olur.



5

Hayır, APC 1.3.9 (ve şu andan itibaren svn gövdesi bile) php 5.4.0 ile uyumlu değil, biliyorum çünkü onu çalıştırmaya çalışmak için saatler harcadım (çeşitli svn / php. ini ayarları / derleyici bayrakları / siz adlandırın).

Bu çok saçma, APC en popüler PHP eklentilerinden biridir ve haftalarca 8 PHP 5.4 RC'den geçtikten sonra APC'nin yanında çalışması için zamanları olmasını beklersiniz.

Acınası.


Belki de bu yüzden APC, başlangıçta planlandığı gibi PHP 5.4'e dahil edilmemişti .. Test ettiğimde çalışıyor gibiydi, ancak diğer php 5.4 özelliklerinin hiçbirini değil, sadece özellikleri test ettim.
Greywire

2
Görünüşe göre php 5.4 için tek uygun önbellek / bayt kodu derleyicisi Zend'in kendi zend sunucu paketidir. PHP 5.4 beni biraz heyecanlandırdı, ancak APC veya XCache veya başka bir şey olmadan işe yaramaz. Ve bu yıllardır ve yıllardır PHP'nin hikayesiydi .. her zaman bekliyor, bekliyorum .. Başka bir dil
öğrenmeyi

Doğru, segfault hatası geçen yıl Aralık'ta bildirildi ve 3 ay sonra hala düzeltilmedi, wtf, en yaygın koşullar altında bile çalışmıyorsa 'büyük bir yükseltme' yayınlama noktasıdır. [Hata # 60462 APC etkinleştirildiğinde segfault - Gönderildi: 2011-12-07] bugs.php.net/bug.php?id=60462&edit=1
JohnSmith

5

Son birkaç gündür deniyorum ve php 5.4 ile çalışmak için bir opcode cacher almamın hiçbir yolu yok. Xcache derlemez ve apc önbelleğe alındığında belirli sınıfları tanımaz. Sanırım Simon'un bahsettiği hata bu.

Bagajda bazı düzeltmeler olduğunu duydum, ancak en son gövde kaynaklarını da denedim, ancak aynı hatalar geri gelmeye devam ediyor. Opcode cacher olmadan php'nin (şu anda mevcut hiçbiri yok) üretime değer olmadığını düşünüyorum. Umarım apc'deki insanlar bunu en kısa zamanda düzeltir.

GÜNCELLEME!!!

Xcache 2.0.0-rc1 çıktı ve php 5.4 ile uyumlu. Zevk almak!



4

PHP Sürüm 5.5.19 ile AMPPS kullanıyorum. Tam olarak PHP 5.5 sürümünden bir süredir - APC, PHP 5.5 ve sonraki sürümlerde bulunan Zend OPCache ile değiştirilmiştir. Şimdi "APC" yi (şu anda "OPcache") etkinleştirmek için yapmanız gereken tek şey php.ini'nizi düzenlemektir. [XDebug] bölümünden önce akan çizgileri ekleyin:

php.ini

...

[OPcache]

zend_extension=php_opcache.dll

opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=512
opcache.interned_strings_buffer=24
opcache.max_accelerated_files=4000
opcache.revalidate_freq=3
opcache.fast_shutdown=1

...

Lütfen iki örneğe sahip olmamız gerektiğini unutmayın :

zend_extension =

Bir [OPcache] ve bir [XDebug] bölümünde. Xdebug, xampp / ampps / easyPHP sunucu kurulumunuzda genellikle varsayılan olarak sağlanmamaktadır. Kendinizi Xdebug uzantısını indirmeniz gereken bir durumda bulabilirsiniz. Bunu, php'niz için doğru Xdebug'u tanımlayan çevrimiçi bir uygulama kullanarak kolayca yapabilirsiniz. Http://xdebug.org/wizard.php adresini ziyaret edin ve basit talimatlarını izleyin. Php sürümünüz için doğru Xdebug sürümünü indirdikten sonra - [XDebug] bölümünde zend_extension bağlantınızın bağlantısını düzenleyin.

...

[XDebug]
zend_extension = "C:\Program Files (x86)\Ampps\php\ext\php_xdebug-2.2.6-5.5-vc11.dll"
......

Lütfen aklınızda bulundurun! php.ini dosyanıza XDebug'dan önce OPcache bölümü eklemeniz gerekir !!! Beni doğru şekilde izlerseniz php.ini dosyanızda iki zend_extension örneğiniz olmalıdır (biri OPcache'de ve biri Xdebug bölümünde).

Bu, Symfony2 çerçevesi için mükemmel şekilde çalışır ve PHP ve Xdebug'unuz için APC'yi kurmak ve etkinleştirmek için öneri mesajını ortadan kaldırır.

Symfony 2'yi çalıştıran ve uyarı mesajını "web / config.php" den kaldıran, ancak yine de "php app / check.php" komut satırından çalıştırarak bir sorunla karşılaşanlara mesaj. Bu olursa, konsolunuzun farklı bir php.ini dosyası kullandığı anlamına gelir. Sisteminizin PATH değişkenini değiştirin - doğru php dizinini işaret edin (php.exe dosyanızın bulunduğu ve yerel sunucunuz tarafından kullanılan).

Daha derin bir açıklamaya ihtiyacınız varsa, aşağıdaki yorumda bana bildirin. Saygılarımızla.


1
Bu cevabın talimatlarının en iyi cevapla birleştirilmesini şiddetle tavsiye ediyorum, böylece OpCache'yi uygulamak isteyen herkes bunu tam olarak nasıl yapacağını bilir.
Joe

Xdebug "zend_extension" için yorum yaparsanız, onu kapatırsınız - bu gerekli değildir. "Zend_extension" ile [OPcache] bölümü eklemek, [XDebug] bölümündeki aynı parametre ile çakışmaz. Ayrıca bu bölümlerin sırası da önemli değil.
Marek

Not: [kaynak: php.net/manual/en/opcache.installation.php] OPcache'yi »Xdebug ile kullanmak istiyorsanız, Xdebug'dan önce OPcache yüklemelisiniz.
DevWL

3

Henüz çözülmesi gereken bazı sorunlar var gibi görünüyor. Hataları kontrol edin ve özel probleminizin çözümünün ne olduğunu anlayabilirsiniz.

Birkaç saat önce böyle bir hatayla uğraştım ve SVN bagajından APC kullanmanın yolunun olduğu ortaya çıktı. Bu yardımcı olur umarım!


Şimdiye kadar iyi çalışıyor gibi görünüyor. Bu, launchpad.net/~ondrej/+archive/php5'ten PHP 5.4 paketleri içeren Ubuntu 10.04'te (anahtar teslimi LAMP cihazı) . Ama bir şey çıkarsa, hata listesini kontrol ederim. Teşekkürler!
Greywire

3

Her sayfa isteğinde işlem kodu önbelleğini temizlemeniz gerektiğini, aksi takdirde arabirimleri uygulayan sınıflar yüklenemediğini buldum. Bu, en son svn gövdesi olan Apache 2.4.1, PHP 5.4.0'dan derlenmiştir.


@ michiel-thalen, tam da bu konu hakkında konuştuğum konu. Gerçekten utanç verici ... Yine de her yüklemede işlem kodunu sıfırlamama rağmen performansta küçük bir fayda görmeme rağmen. Kullanıcı önbelleği hala amaçlandığı gibi çalışıyor (şimdiye kadarki testlerimde).
Simon

2

APC - tavsiye edilmez
Şahsen APC'yi PHP 5.4 veya PHP 5.5 ile kullanmadım, ancak en son kararlı APC PHP 5.4 ile uyumlu değil, en son beta APC 5.4 ile kullanılabilir ancak APC ile hala olumsuz sorunları olduğu yazılmıştır.

PHP 5.5'iniz varsa,
sadece Zend Opcache kullanın . Kutudan çıktığı için sorunlar minimumdur.

PHP 5.4 varsa
tavsiye XCache . PHP 5.4 ve 5.5 ile tamamen uyumludur. Aktif olarak geliştirildi. Son kararlı sürüm 3.5 ay önce yayınlandı (10 Ekim 2013). Fastcgi kullansanız bile performansı artırır.


1

Zend OPCache adı altında PHP 5.5 dahildir php_opcache.dll içinde php / ext dizinine. Etkinleştirmek için:

  • Ekle php_opcahe.dll senin bir zend uzantısı olarak dosyayı php.ini yapılandırma dosyası.
  • Zend_extension = path / to / php / ext / php_opcache.dll biçimini kullanın .
  • Önce zend_extension yerleştirin xdebug zend_extension sizin de php.ini yapılandırma .
  • Sizin tasarruf php.ini yapılandırma dosyası ve yeniden sunucu.

0

APC'nin yeni bir sürümü var: 2 Ocak'tan bu yana 3.1.14, bazı hataları çözüyor: http://pecl.php.net/package/APC

Bununla birlikte, şu ana kadar dotdeb deposundan APC 3.1.13 ile PHP 5.4.x çalıştırıyorum, bu yüzden benim için kararlı olduğunu söyleyebilirim. dotdeb ayrıca, 5.4.11 olması beklenen PHP'nin bir sonraki sürümüne güncellenmiş APC'yi dahil edeceklerini bildirdi.


APC 3.1.14 kullanıyorsanız, geçici olarak APC 3.1.13'e dönmenizi tavsiye ederim. 3.1.14 sürümünün indirmeler bölümünden çekilmesine neden olan bellekle ilgili bazı ciddi hatalar keşfedildi.
Leigh

Nitekim, dotdeb tarafından PHP 5.4.11 için yayınlanan paketin başlangıçta APC 3.1.14 içerdiğini ancak hataları önlemek için geri çevrildiğini buldum.
Steven De Groote


0

XAMPP Sürüm 5.6.3'te (PHP 5.6.3) ini.php'nizde yapmanız gereken tek şey şudur:

[OPcache]

zend_extension = php_opcache.dll
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=512
opcache.interned_strings_buffer=24
opcache.max_accelerated_files=4000
opcache.revalidate_freq=3
opcache.fast_shutdown=1

[XDebug]

zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
xdebug.max_nesting_level = 200
xdebug.profiler_append = 1
xdebug.profiler_enable = 1
xdebug.profiler_enable_trigger = 0
;xdebug.profiler_output_dir = "C:\xampp\tmp"
;xdebug.profiler_output_name = "cachegrind.out.%t-%s"
;xdebug.remote_enable = 0
;xdebug.remote_handler = "dbgp"
;xdebug.remote_host = "127.0.0.1"
;xdebug.trace_output_dir = "C:\xampp\tmp"

Symfony2 çerçevesi için yapılandırma.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.