ฉันใช้เวลานานมากในการคิดออกว่ามันเป็นปัญหา MAMP! เหตุใด OPcache จึงถูกเปิดใช้งานโดยค่าเริ่มต้น - และต้องใช้ php.ini tinkering เพื่อปิดการใช้งาน - ในแอปที่ควรใช้สำหรับการทดสอบเว็บไซต์ อย่างไรก็ตามฉันอ่านกระทู้ทั้งหมดนี้และลองใช้วิธีแก้ปัญหาต่างๆ
นี่คือบันทึกย่อของฉันเกี่ยวกับวิธีการทำงานของแต่ละโซลูชันและข้อควรพิจารณาในการเลือกโซลูชัน
แต่ละโซลูชันทำงานของตัวเอง ไม่จำเป็นต้องซ้ำซ้อน
โซลูชันโค้ดหน้าเว็บ
opcache_reset ();
<?php opcache_reset(); ?>
- ต้องเพิ่มในโค้ดหน้าเว็บ
- บังคับให้โหลดสคริปต์ทั้งหมดใหม่
- ทำงานได้โดยไม่ต้องรีสตาร์ทเซิร์ฟเวอร์ MAMP
โซลูชันการกำหนดค่าเซิร์ฟเวอร์
สำคัญ:ใช้php.ini
แฟ้มในและไม่ได้อยู่ใน/Applications/MAMP/bin/php/php5.5.3/conf/php.ini
/Applications/MAMP/conf/php5.5.3/php.ini
ปรับให้เหมาะสมหากคุณใช้ PHP เวอร์ชันอื่น
เปิดใช้งาน = 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
- จะต้องมีการเพิ่มภายใต้ใน
[OPcache]
php.ini
- ปิดใช้งาน OPcache
- ต้องรีสตาร์ทเซิร์ฟเวอร์ 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
- แก้ไข
opcache.revalidate_freq
ภายใต้[OPcache]
ในphp.ini
.
- ทำให้ OPcache ตรวจสอบการอัปเดตทุกๆ 0 วินาทีแทนที่จะเป็นทุกๆ 60 วินาที
- ต้องรีสตาร์ทเซิร์ฟเวอร์ MAMP
แสดงความคิดเห็น [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]
php.ini
- ลบ OPcache ออกจากเซิร์ฟเวอร์ PHP
- ต้องรีสตาร์ทเซิร์ฟเวอร์ MAMP
การพิจารณา
เลือกโซลูชันโค้ดหน้าเว็บหาก:
- คุณต้องบังคับให้รีเฟรชสคริปต์สำหรับโปรเจ็กต์เฉพาะ
- คุณไม่ต้องการรีสตาร์ทเซิร์ฟเวอร์ MAMP
- คุณไม่ต้องการแก้ไข php.ini
เลือกโซลูชันการกำหนดค่าเซิร์ฟเวอร์หาก:
- คุณต้องการปิดใช้งานการแคชตามค่าเริ่มต้นแทนที่จะต้องทำในทุกโปรเจ็กต์
- คุณพอใจกับการแก้ไข php.ini
ฉันชอบเป็นการส่วนตัวenable=0
เนื่องจากเป็นวิธีแก้ปัญหาที่ง่ายที่สุดสำหรับฉันและฉันต้องปิดการใช้แคชโดยค่าเริ่มต้น
อ้างอิง