Hentikan caching untuk PHP 5.5.3 di MAMP

123

Menginstal MAMP di Macbook baru dengan PHP 5.5.3.

Muat ulang dan segarkan tidak melakukan apa pun. Tetap tidak ada. Google berkeliling selama beberapa menit mencoba mencari tahu apa yang salah, kembali dan segarkan. Berhasil. Apa apaan?

Saya masuk ke php.ini dan menonaktifkan semua OPcache baru dan mengatur waktu cache default ke 0. Menambahkan header ke dokumen untuk memaksa tidak ada cache. Masih masalah yang sama. Apa yang sebenarnya terjadi disini?

Tab jaringan menunjukkan permintaan HTTP 200, jadi HTML baru apa pun dalam index.phpfile akan baik-baik saja, tetapi PHP baru yang perlu dirender oleh server ditunda dan tidak ditampilkan sampai beberapa set waktu yang telah ditentukan berlalu yang saya tidak tahu caranya Untuk mengganti. Apa yang sedang terjadi?

Saya memeriksa ini di Safari juga jadi ini jelas merupakan hal server yang menjaga file agar tidak dirender.

Fakta yang menarik, jika saya masuk ke MAMP dan mengubah versi PHP ke yang lama (PHP 5.2 atau sesuatu) itu akan membuat secara normal, tanpa "masalah caching". Beralih ke PHP 5.5 dan itu menutup. Dalam preferensi MAMP pilihan caching untuk 5.5 bahkan tidak ada dan secara otomatis dinonaktifkan.

Daron Spence
sumber
4
Saya tahu bahwa ini bukan solusi untuk masalah Anda, tetapi saya pribadi bukan penggemar berat MAMP, karena, terutama tidak begitu mudahnya memasang tumpukan kustom - Berikut panduan yang cukup cepat untuk menginstal tumpukan menggunakan homebrew: github .com / josegonzalez / homebrew-php
mewm
@mewm Saya tidak menyadari itu bisa sangat mudah. Bersulang! Gunakan ini untuk memulai nginx hanya dalam beberapa penekanan tombol. learnaholic.me/2012/10/10/…
willdanceforfun

Jawaban:

207

Nonaktifkan OPCache

MAMP sekarang mengaktifkan OPCache secara default, Anda dapat menonaktifkannya dengan mengedit file php.ini Anda. Pastikan Anda mengedit php.ini yang benar.

Saya sendiri mengalami masalah yang sama. MAMP dengan PHP versi 5.5.3 menjalankan OPcache secara default, tetapi Anda tidak dapat mematikannya di GUI seperti yang Anda bisa dengan PHP versi 5.2.17 yang lebih lama. Anda harus mengomentari secara manual semua baris OPcache di akhir file php.ini (MAMP / bin / php / [versi] /conf/php.ini) dan pastikan untuk menghentikan dan memulai server agar perubahan dilakukan efek.

Saya memperbarui URI, perubahan dapat direfleksikan dengan juga mengubah / conf / di bawah folder php, tetapi tampaknya MAMP akan mengabaikan ini setelah restart .

Jonathan Kaiser
sumber
4
Saya memiliki masalah yang sama dan memperbaikinya dengan mengomentari baris opcache. Agak membingungkan bahwa Anda harus masuk ke file php.ini untuk mengubahnya. Ini sebenarnya cukup menyesatkan, karena sepertinya Anda memiliki semua opsi caching yang diberikan di kotak drop-down MAMP-> Preferences.
JaredH
17
Saya ingin tahu bagian tubuh mana yang digunakan pembuat MAMP untuk berpikir sambil menambahkan "fitur keren" ini.
Sergii
Saya pikir saya memiliki masalah dengan pemasangan ModX saya, tetapi tidak, jawaban Anda sepertinya telah memperbaikinya. Terima kasih. Selanjutnya, saya juga kembali ke versi yang lebih lama. Sekarang berjalan jauh lebih baik.
vr_driver
67
Perhatikan bahwa php.inifile yang ingin Anda edit ada di / bin, bukan di / conf. Jalan lengkap saya adalah /Applications/MAMP/bin/php/php5.5.3/conf/php.ini.
Husky
Saya telah mengirimkan laporan bug, semoga mereka akan menonaktifkannya secara default di versi yang akan datang: bugs.mamp.info/view.php?id=4296
Husky
38

Saya menambahkan opcache_reset (); di PHP utama saya untuk menghentikan caching ini.

Menghapusnya dari php5.5.3/conf/php.initidak melakukan apa-apa bagi saya.

Sunting

Ternyata ada juga a /Applications/MAMP/bin/php/php5.5.3/conf/php.ini. Ini berhasil jika saya mengomentarinya di luar sana.

Joeri
sumber
1
Mengomentari OPcache di direktori / bin berhasil untuk saya! Terima kasih untuk itu!
daveaspinall
Mengomentari OPcache di php.ini /Applications/MAMP/bin/php/php5.5.3/conf/php.initidak melakukan apa-apa, selain menambahkan opcache_reset();ke index.phpberhasil.
Даниил Пронин
26

1) di /Applications/MAMP/bin/php/php5.5.3/conf/php.ini
2) set opcache.revalidate_freq = 0
3) mulai ulang MAMP

Lagi
sumber
2
Sepertinya ini berhasil. Saya menikmati penerapan solusi ini lebih baik daripada mengomentari semuanya. Tetapi apakah ada perbedaan?
Ketri
10

Butuh waktu lama bagi saya untuk mengetahui bahwa itu adalah masalah MAMP! Mengapa OPcache diaktifkan secara default - dan memerlukan php.ini mengutak-atik untuk menonaktifkan - di aplikasi yang seharusnya digunakan untuk menguji situs web? Bagaimanapun, saya membaca seluruh utas ini dan mencoba berbagai solusi.

Berikut adalah catatan saya tentang cara kerja setiap solusi dan pertimbangan untuk memilih solusi.

Setiap solusi bekerja dengan sendirinya; tidak perlu redundansi.


Solusi kode halaman web

opcache_reset ();

<?php opcache_reset(); ?>
  • Harus ditambahkan dalam kode halaman web.
  • Memaksa semua skrip untuk dimuat ulang.
  • Bekerja tanpa memulai ulang server MAMP.

Solusi konfigurasi server

Penting: Gunakan php.inifile dalam /Applications/MAMP/bin/php/php5.5.3/conf/php.inidan bukan dalam /Applications/MAMP/conf/php5.5.3/php.ini. Sesuaikan seperlunya jika Anda menggunakan versi PHP yang berbeda.

aktifkan = 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
  • Harus ditambahkan [OPcache]di bawah php.ini.
  • Menonaktifkan OPcache.
  • Memerlukan restart server MAMP.

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
  • Ubah di opcache.revalidate_freqbawah .[OPcache]php.ini
  • Membuat OPcache memeriksa pembaruan setiap 0 detik, bukan setiap 60 detik.
  • Memerlukan restart server MAMP.

Mengomentari [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
  • Komentari seluruh [OPcache]bagian dalam php.ini.
  • Menghapus OPcache dari server PHP.
  • Memerlukan restart server MAMP.

Pertimbangan

Pilih solusi kode halaman web jika:

  • Anda hanya perlu memaksa penyegaran skrip untuk proyek tertentu
  • Anda tidak ingin memulai ulang server MAMP
  • Anda tidak ingin mengedit php.ini

Pilih solusi konfigurasi server jika:

  • Anda ingin menonaktifkan caching secara default daripada harus melakukannya di setiap proyek
  • Anda nyaman mengedit php.ini

Saya pribadi lebih suka enable=0karena ini adalah solusi paling sederhana untuk saya, dan saya perlu caching dinonaktifkan secara default.


Referensi

Feanne
sumber
4

MAMP 3.0.7.2 untuk OS X

Sepertinya ini akhirnya menjadi opsi GUI. MAMP 3.0.7.2 for Mac OS X.

jibiel
sumber
Tampaknya ini tidak menonaktifkan OPCache. Punyaku masih aktif bahkan dengan pengaturan "off" ini.
auco
2

Sungguh menyakitkan menghabiskan sekitar 1 jam mencoba mencari tahu apa itu.

Saya baru saja menambahkan ini di akhir kode dan memulai ulang MAMP.

  opcache.revalidate_freq=0
  opcache_reset();
Huroman
sumber
2

Edit "/Applications/MAMP/conf/php5.5.3/php.ini", dan cari [OPcache] dan tambahkan kode ini langsung di bawahnya:

opcache.enable=0

Ini akan menonaktifkan opcache saat menggunakan PHP di server MAMP.

aakatheeri
sumber
Bekerja untuk server ubuntu saya. Terima kasih.
Sinan Eldem
2

Ya ampun, saya senang saya menemukan utas ini! Saya menarik rambut saya! Saya baru saja memutakhirkan MAMP kemarin dan tidak melihat masalah caching ini hingga hari ini saat mengerjakan sebuah proyek. Pikir saya kehilangan akal. Saya baru saja mengubah "/Applications/MAMP/conf/php5.5.3/php.ini" paling bawah dari file opcache.enable = 0

di Amerika Serikat
sumber
1

Ini juga berlaku di MAMP versi Windows juga.

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

Ini tercantum di bagian paling bawah file.

Masalah lain yang saya temukan, ada di QNAP NAS TS-431. Caching ini juga diaktifkan, dan jika Anda bekerja dengan file yang berubah secara dinamis, atau mencoba mengembangkannya, Anda akan merobek rambut Anda. Sesuai komentar lainnya, beri komentar saja. Pengaturannya terletak di:

Panel Kontrol / Aplikasi / Server Web / Pemeliharaan PHP.ini.

Sekali lagi, Anda akan menemukan pengaturan di bagian bawah file.

vr_driver
sumber