MAMP'de PHP 5.5.3 için önbelleğe almayı durdur


123

MAMP, PHP 5.5.3 ile yeni bir Macbook'a yüklendi.

Yeniden yükleme ve yenileme hiçbir şey yapmaz. Hala hiçbirşey. Google, neyin yanlış olduğunu bulmak için birkaç dakika etrafta dolaşıp geri dönün ve yenileyin. İşe yarıyor. Ne halt?

Php.ini'ye girdim ve tüm yeni OPcache'yi devre dışı bıraktım ve varsayılan önbellek süresini 0'a ayarladım. Önbelleğe almayı zorlamak için belgeye başlıklar ekledim. Hala aynı sorun. Burada neler oluyor?

Ağ sekmesi bir HTTP 200 isteği gösteriyor, bu nedenle index.phpdosyadaki herhangi bir yeni HTML iyi işliyor, ancak sunucu tarafından oluşturulması gereken yeni PHP erteleniyor ve nasıl olduğunu bilmediğim önceden belirlenmiş bir dizi zaman geçene kadar işlenmiyor değişmek. Neler oluyor?

Bunu Safari'de de kontrol ettim, bu yüzden kesinlikle dosyanın oluşturulmasını engelleyen bir sunucu işi.

Yine de ilginç bir gerçek, eğer MAMP'a girersem ve PHP sürümünü eski sürümle (PHP 5.2 veya başka bir şey) değiştirirsem, "önbellek sorunları" olmadan normal şekilde işleyecektir. PHP 5.5'e geçtiğinizde kapanır. MAMP tercihlerinde, 5.5 için önbelleğe alma seçenekleri bile yoktur ve otomatik olarak devre dışı bırakılır.


4
Bunun sizin sorununuz için bir çözüm olmadığını biliyorum, ancak kişisel olarak MAMP'ın büyük bir hayranı değilim, çünkü özellikle özel bir yığın kurmak çok kolay değil - İşte homebrew kullanarak bir yığın kurmak için oldukça hızlı bir kılavuz: github .com / josegonzalez / homebrew-php
mewm

@mewm Bu kadar kolay olabileceğinin farkında değildim. Şerefe! Bunu sadece birkaç tuşa basarak nginx ile devam etmek için kullandık. learnaholic.me/2012/10/10/…
willdanceforfun

Yanıtlar:


207

OPCache'yi devre dışı bırakın

MAMP artık OPCache'yi varsayılan olarak açar, php.ini dosyanızı düzenleyerek devre dışı bırakabilirsiniz. Doğru php.ini dosyasını düzenlediğinizden emin olun.

Ben de aynı problemle karşılaşıyordum. PHP 5.5.3 sürümüne sahip MAMP varsayılan olarak OPcache çalıştırır, ancak daha eski PHP 5.2.17 sürümünde olduğu gibi GUI'de kapatamazsınız. Php.ini dosyasının sonundaki (MAMP / bin / php / [sürüm] /conf/php.ini) tüm OPcache satırlarını manuel olarak yorumlamanız ve değişikliklerin yapılması için sunucuları durdurup başlatmanız gerekir. etki.

URI'yi güncelledim, değişiklikler php klasörünün altındaki / conf / değiştirilerek yansıtıcı olabilir, ancak MAMP yeniden başlatıldıktan sonra bunları yok sayacak gibi görünüyor .


4
Aynı sorunu yaşadım ve opcache satırlarını yorumlayarak düzelttim. Bunu değiştirmek için php.ini dosyasına gitmeniz biraz şaşırtıcı. Aslında oldukça yanıltıcıdır, çünkü MAMP-> Tercihler açılır kutusunda verilen tüm önbelleğe alma seçeneklerine sahipmişsiniz gibi görünüyor.
JaredH

17
MAMP yaratıcılarının bu "harika özelliği" eklerken vücutlarının hangi bölümünü düşünmek için kullandıklarını merak ediyorum.
Sergii

ModX kurulumumda bir sorun olduğunu düşündüm ama hayır, cevabınız sorunu çözmüş gibi görünüyor. Teşekkürler. Dahası, eski sürüme de geri döndüm. Şimdi çok daha iyi çalışıyor.
vr_driver

67
php.iniDüzenlemek istediğiniz dosyanın / conf içinde değil / bin içinde olduğuna dikkat edin . Tam yolum öyleydi /Applications/MAMP/bin/php/php5.5.3/conf/php.ini.
Husky

Bir hata raporu gönderdim, umarım gelecekteki bir sürümde varsayılan olarak devre dışı bırakırlar
Husky

38

Opcache_reset () ekledim ; benim ana PHP'de bu önbelleğe almayı durdurmak için.

Onu çıkarmak php5.5.3/conf/php.inibenim için hiçbir şey yapmadı.

Düzenle

Ayrıca bir /Applications/MAMP/bin/php/php5.5.3/conf/php.ini. Orada yorum yaparsam işe yarar.


1
/ Bin dizinindeki OPcache'yi yorumlamak benim için çalıştı! Bunun için teşekkürler!
daveaspinall

Php.ini in içinde OPcache yorumlarında /Applications/MAMP/bin/php/php5.5.3/conf/php.inihiçbir şey, ama eklemeden yapar opcache_reset();için index.phpçalıştı.
Даниил Пронин

26

1) /Applications/MAMP/bin/php/php5.5.3/conf/php.ini'de
2) opcache.revalidate_freq = 0 olarak ayarlayın
3) MAMP'yi yeniden başlatın


2
Bu işe yarıyor gibi görünüyor. Bu çözümü uygulamaktan, yorum yapmaktan daha çok keyif aldım. Ama bir fark var mı?
Ketri

10

Bunun bir MAMP problemi olduğunu anlamam çok uzun sürdü! Web sitelerini test etmek için kullanılması beklenen bir uygulamada neden OPcache varsayılan olarak etkinleştirilir ve devre dışı bırakılması için php.ini'nin düzeltilmesi gerekir? Her neyse, tüm bu konuyu okudum ve çeşitli çözümleri denedim.

İşte her çözümün nasıl çalıştığına dair notlarım ve bir çözüm seçerken dikkate alınması gereken noktalar.

Her çözüm kendi başına çalışır; yedekliliğe gerek yok.


Web sayfası kodu çözümü

opcache_reset ();

<?php opcache_reset(); ?>
  • Web sayfası koduna eklenmelidir.
  • Tüm komut dosyalarını yeniden yüklenmeye zorlar.
  • MAMP sunucusunu yeniden başlatmadan çalışır.

Sunucu yapılandırma çözümleri

Önemli:php.ini Dosyayı içinde /Applications/MAMP/bin/php/php5.5.3/conf/php.inideğil içinde kullanın /Applications/MAMP/conf/php5.5.3/php.ini. PHP'nin farklı bir sürümünü kullanıyorsanız buna göre ayarlayın.

etkinleştirme = 0

[OPcache]
zend_extension="/Applications/MAMP/bin/php/php5.5.3/lib/php/extensions/no-debug-non-zts-20121212/opcache.so"
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1
enable=0
  • Altında eklenmelidir [OPcache]içinde php.ini.
  • OPcache'yi devre dışı bırakır.
  • MAMP sunucusunun yeniden başlatılmasını gerektirir.

opcache.revalidate_freq = 0

[OPcache]
zend_extension="/Applications/MAMP/bin/php/php5.5.3/lib/php/extensions/no-debug-non-zts-20121212/opcache.so"
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=0
opcache.fast_shutdown=1
opcache.enable_cli=1
  • Değiştir opcache.revalidate_freqaltında [OPcache]yer php.ini.
  • OPcache'nin güncellemeleri 60 saniye yerine her 0 saniyede bir kontrol etmesini sağlar.
  • MAMP sunucusunun yeniden başlatılmasını gerektirir.

Yorum yapma [OPcache]

;[OPcache]
;zend_extension="/Applications/MAMP/bin/php/php5.5.3/lib/php/extensions/no-debug-non-zts-20121212/opcache.so"
;opcache.memory_consumption=128
;opcache.interned_strings_buffer=8
;opcache.max_accelerated_files=4000
;opcache.revalidate_freq=60
;opcache.fast_shutdown=1
;opcache.enable_cli=1
  • [OPcache]Bölümünün tamamını yorumlayın php.ini.
  • OPcache'yi PHP sunucusundan kaldırır.
  • MAMP sunucusunun yeniden başlatılmasını gerektirir.

hususlar

Aşağıdaki durumlarda web sayfası kodu çözümünü seçin:

  • Sadece belirli bir proje için komut dosyasını yenilemeye zorlamanız gerekir
  • MAMP sunucusunu yeniden başlatmak istemiyorsunuz
  • Php.ini'yi düzenlemek istemezsiniz

Aşağıdaki durumlarda bir sunucu yapılandırma çözümü seçin:

  • Her projede yapmak zorunda kalmadan önbelleğe almayı varsayılan olarak devre dışı bırakmak istiyorsunuz
  • Php.ini'yi düzenleme konusunda rahatsınız

Benim enable=0için en basit çözüm olduğu için kişisel olarak tercih ediyorum ve varsayılan olarak önbelleğe almayı devre dışı bırakmam gerekiyor.


Referanslar


4

OS X için MAMP 3.0.7.2

Görünüşe göre bu nihayet bir GUI seçeneği. MAMP 3.0.7.2 for Mac OS X.


Bu görünüşe göre OPCache'yi devre dışı bırakmıyor. Benimki bu ayar "kapalı" olsa bile hala aktifti.
auco

2

Ne olabileceğini anlamaya çalışmak için yaklaşık 1 saat harcamak acı vericiydi.

Bunu kodun sonuna ekledim ve MAMP'ı yeniden başlattım.

  opcache.revalidate_freq=0
  opcache_reset();

2

"/Applications/MAMP/conf/php5.5.3/php.ini" dosyasını düzenleyin ve [OPcache] araması yapın ve bu kodu doğrudan altına ekleyin:

opcache.enable=0

Bu, MAMP sunucusunda PHP kullanıldığında opcache'yi devre dışı bırakır.


Ubuntu sunucum için çalıştı. Teşekkürler.
Sinan Eldem

2

Ah adamım bu konuyu bulduğuma sevindim! Saçımı çekiyordum! Dün MAMP'ı yeni güncelledim ve bir proje üzerinde çalışırken bugüne kadar bu önbelleğe alma sorununu fark etmedim. Aklımı kaybettiğimi sanıyordum. Opcache.enable = 0 dosyasının en altında "/Applications/MAMP/conf/php5.5.3/php.ini" dosyasını değiştirdim


1

Bu aynı zamanda MAMP'ın Windows sürümünde de geçerlidir.

C: \ MAMP \ conf \ php5.6.3 \ php.ini

Dosyanın en altında listelenir.

Bulduğum diğer sorun, QNAP NAS TS-431'di. Bu önbelleğe alma da etkindir ve dinamik olarak değişen dosyalarla çalışıyorsanız veya üzerinde geliştirmeye çalışıyorsanız, saçınızı koparacaksınız. Diğer yorumlara göre, sadece yorum yapın. Ayar şurada bulunur:

Denetim Masası / Uygulamalar / Web Sunucusu / PHP.ini Bakımı.

Bir kez daha, ayarları dosyanın altında bulacaksınız.

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.