อินเทอร์เฟซที่สะอาดตาและตอบสนองสำหรับข้อมูล Zend OPcache แสดงสถิติ การตั้งค่า และไฟล์แคช และให้การอัปเดตข้อมูลแบบเรียลไทม์
อินเทอร์เฟซนี้ใช้ ReactJS และ Axios และมีไว้สำหรับเบราว์เซอร์สมัยใหม่ และต้องการ PHP 7.1 ขั้นต่ำ
เอ็มไอที: http://acollington.mit-license.org/
หากคุณสามารถและต้องการสนับสนุนงานนี้ในทางใดทางหนึ่ง นั่นจะยอดเยี่ยมมาก คุณสามารถทำได้ผ่านหน้าผู้สนับสนุน GitHub
หรืออีกทางหนึ่ง หากคุณต้องการตะโกนใส่ X (หรือ Twitter) ให้ฉันบอกว่าคุณใช้มัน มันก็จะยอดเยี่ยมเช่นกัน! (มีใครคิดถึงโปสการ์ดบ้างไหม?)
มีสองวิธีในการเริ่มต้นใช้งาน GUI นี้:
วิธีที่ง่ายที่สุดในการเริ่มต้นใช้งาน opcache-gui คือการโคลน repo นี้ หรือเพียงคัดลอก/วาง/ดาวน์โหลดไฟล์ index.php
ไปยังตำแหน่งที่เว็บเซิร์ฟเวอร์ของคุณสามารถโหลดได้ จากนั้นชี้เบราว์เซอร์ของคุณไปยังตำแหน่งนั้น เช่น https://www.example.com/opcache/index.php
คุณสามารถรวมไฟล์เข้ากับ Composer ได้โดยการรันคำสั่ง composer require amnuts/opcache-gui
เมื่ออยู่ในไดเร็กทอรี vendor
ของคุณ คุณสามารถใช้อินเทอร์เฟซได้หลายวิธี ตัวอย่างเช่น หากคุณใช้เฟรมเวิร์กอย่าง Symfony หรือ Laravel คุณสามารถโหลด opcache-gui ลงใน Controller
ได้ ข้อกำหนดของคุณในการตั้งค่าภายในกรอบงานที่คุณเลือกจะแตกต่างกันไป ดังนั้นจึงเป็นไปไม่ได้เลยที่จะให้รายละเอียดว่าต้องทำอย่างไรภายใน readme นี้... แต่ฉันเชื่อมั่นในความสามารถของคุณในการคิดออก!
เนมสเปซที่ใช้สำหรับคลาสคือ AmnutsOpcache
ดังนั้นเมื่อการขึ้นต่อกันอยู่ใน autoload.php
ของคุณ คุณจะสามารถใช้คลาส AmnutsOpcacheService
ได้ ตัวอย่างเช่น คุณสามารถทำบางอย่างเช่น:
<?php
use Amnuts Opcache Service ;
// assuming location of: /var/www/html/opcache.php
require_once __DIR__ . ' /../vendor/autoload.php ' ;
// specify any options you want different from the defaults, if any
$ options = [ /* ... */ ];
// setup the class and pass in your options, if you have any
$ opcache = ( new Service ( $ options ))-> handle ();
จากนั้นคุณสามารถสร้างมุมมองใดก็ได้ที่คุณต้องการซึ่งจะแสดงรายละเอียด opcache แม้ว่าจะมีอินเทอร์เฟซที่ใช้ React ที่ค่อนข้างเรียบร้อยสำหรับคุณใน repo นี้
หรือรวม vendor/amnuts/opcache-gui/index.php
โดยตรง ซึ่งจะทำให้คุณได้ผลลัพธ์เหมือนกับการคัดลอก/วางไฟล์ index.php
ที่ไหนสักแห่ง
<?php
// assuming location of: /var/www/html/opcache.php
require_once __DIR__ . ' /../vendor/amnuts/opcache-gui/index.php ' ;
คุณสามารถสร้าง symlink ไปยัง index.php
ที่อยู่ในไดเร็กทอรี vendor
:
ln -s /var/www/vendor/amnuts/opcache-gui/index.php /var/www/html/opcache.php
โดยพื้นฐานแล้ว มีหลายวิธีในการทำให้อินเทอร์เฟซใช้งานได้ - เลือกวิธีที่เหมาะกับความต้องการของคุณ
การกำหนดค่าเริ่มต้นสำหรับอินเทอร์เฟซมีลักษณะดังนี้:
$ options = [
' allow_filelist ' => true , // show/hide the files tab
' allow_invalidate ' => true , // give a link to invalidate files
' allow_reset ' => true , // give option to reset the whole cache
' allow_realtime ' => true , // give option to enable/disable real-time updates
' refresh_time ' => 5 , // how often the data will refresh, in seconds
' size_precision ' => 2 , // Digits after decimal point
' size_space ' => false , // have '1MB' or '1 MB' when showing sizes
' charts ' => true , // show gauge chart or just big numbers
' debounce_rate ' => 250 , // milliseconds after key press to send keyup event when filtering
' per_page ' => 200 , // How many results per page to show in the file list, false for no pagination
' cookie_name ' => ' opcachegui ' , // name of cookie
' cookie_ttl ' => 365 , // days to store cookie
' datetime_format ' => ' D, d M Y H:i:s O ' , // Show datetime in this format
' highlight ' => [
' memory ' => true , // show the memory chart/big number
' hits ' => true , // show the hit rate chart/big number
' keys ' => true , // show the keys used chart/big number
' jit ' => true // show the jit buffer chart/big number
],
// json structure of all text strings used, or null for default
' language_pack ' => null
];
หากคุณต้องการเปลี่ยนค่าเริ่มต้น คุณสามารถส่งต่อเฉพาะค่าที่คุณต้องการเปลี่ยนได้ หากคุณยินดีที่จะเก็บส่วนที่เหลือไว้ตามเดิม เพียงเปลี่ยนอาร์เรย์ที่ด้านบนของสคริปต์ index.php
(หรือส่งผ่านอาร์เรย์แตกต่างจากคลาส Service
)
ตัวอย่างเช่น ข้อมูลต่อไปนี้จะเปลี่ยนเฉพาะค่า allow_reset
และ refresh_time
แต่คงทุกอย่างไว้เป็นค่าเริ่มต้น:
$ opcache = ( new Service ([
' refresh_time ' => 2 ,
' allow_reset ' => false
]))-> handle ();
หรือตัวอย่างนี้เพื่อให้แท็บมีความรู้สึก "ละเมิดลิขสิทธิ์" มากขึ้นเล็กน้อย:
$ opcache = ( new Service ([
' language_pack ' => <<<EOJSON
{
"Overview": "Crows nest",
"Cached": "Thar Booty",
"Ignored": "The Black Spot",
"Preloaded": "Ready an' waitin', Cap'n",
"Reset cache": "Be gone, yer scurvy dogs!",
"Enable real-time update": "Keep a weathered eye",
"Disable real-time update": "Avert yer eyes, sea dog!"
}
EOJSON
]))-> handle ();
ภาพรวมจะแสดงข้อมูลหลักทั้งหมดให้คุณเห็น จากที่นี่ คุณจะเห็นได้ว่าโฮสต์และแพลตฟอร์มใดที่คุณใช้งานอยู่ เวอร์ชันของ OPcache ที่คุณใช้อยู่ การรีเซ็ตครั้งล่าสุดเมื่อใด ฟังก์ชันและคำสั่งที่ใช้งานได้ (พร้อมลิงก์ไปยังคู่มือ php.net) และสถิติทั้งหมดที่เกี่ยวข้องกับ OPcache (จำนวนการเข้าชม หน่วยความจำที่ใช้ หน่วยความจำที่ว่างและเสียไป และอื่นๆ)
ไฟล์ทั้งหมดที่อยู่ในแคชจะแสดงอยู่ที่นี่พร้อมสถิติที่เกี่ยวข้อง
คุณสามารถกรองผลลัพธ์เพื่อช่วยค้นหาสคริปต์เฉพาะที่คุณกำลังมองหาและเปลี่ยนวิธีการจัดเรียงไฟล์แคช จากที่นี่ คุณสามารถทำให้แคชสำหรับไฟล์แต่ละไฟล์ใช้ไม่ได้ หรือทำให้แคชสำหรับไฟล์ทั้งหมดที่ตรงกับการค้นหาของคุณใช้ไม่ได้
หากคุณไม่ต้องการแสดงรายการไฟล์เลย คุณสามารถใช้ตัวเลือกการกำหนดค่า allow_filelist
การตั้งค่าเป็น false
จะระงับรายการไฟล์ทั้งหมด
หากคุณต้องการปรับความยาวของการแบ่งหน้า คุณสามารถทำได้โดยใช้ตัวเลือกการกำหนดค่า per_page
หากคุณได้ตั้งค่ารายการไฟล์ที่คุณไม่ต้องการแคชโดยระบุค่า opcache.blacklist_filename
รายการไฟล์จะแสดงรายการภายในแท็บนี้
หากคุณไม่ได้ระบุตัวเลือกการกำหนดค่านั้นในไฟล์ php.ini
แท็บนี้จะไม่ปรากฏขึ้น หากคุณตั้งค่าตัวเลือกการกำหนด allow_filelist
เป็น false
แท็บนี้จะไม่ปรากฏโดยไม่คำนึงถึงการตั้งค่า ini ของคุณ
PHP 7.4 นำเสนอความสามารถในการโหลดชุดไฟล์ล่วงหน้าบนเซิร์ฟเวอร์โดยเริ่มต้นด้วยการตั้งค่า opcache.preload
ในไฟล์ php.ini
ของคุณ หากคุณตั้งค่าไว้ รายการไฟล์ที่โหลดไว้ล่วงหน้าโดยเฉพาะจะแสดงอยู่ในแท็บนี้
เช่นเดียวกับไฟล์ที่ถูกละเว้น หากคุณไม่ได้ระบุการตั้งค่า ini หรือตัวเลือกการกำหนดค่า allow_filelist
เป็น false
แท็บนี้จะไม่ปรากฏขึ้น
คุณสามารถรีเซ็ตแคชทั้งหมดรวมทั้งบังคับให้แต่ละไฟล์หรือกลุ่มของไฟล์กลายเป็นโมฆะเพื่อที่ไฟล์เหล่านั้นจะถูกแคชอีกครั้ง
การรีเซ็ตสามารถปิดใช้งานได้โดยใช้ตัวเลือกการกำหนด allow_reset
และ allow_invalidate
อินเทอร์เฟซสามารถสำรวจความคิดเห็นได้บ่อยครั้งเพื่อดู opcache ใหม่ คุณสามารถเปลี่ยนความถี่ที่สิ่งนี้จะเกิดขึ้นได้ด้วยตัวเลือกการกำหนดค่า refresh_time
ซึ่งเป็นหน่วยวินาที
เมื่อการอัปเดตตามเวลาจริงทำงาน อินเทอร์เฟซจะอัปเดตค่าทั้งหมดตามความจำเป็นโดยอัตโนมัติ
นอกจากนี้ หากคุณเลือกที่จะทำให้ไฟล์ใดๆ เป็นโมฆะหรือรีเซ็ตแคช ระบบจะดำเนินการนี้โดยไม่ต้องโหลดหน้าเว็บซ้ำ ดังนั้นข้อความค้นหาที่คุณป้อนหรือหน้าเว็บที่คุณนำทางจะไม่ถูกรีเซ็ต หากไม่ได้เปิดการอัปเดตตามเวลาจริง เพจจะโหลดซ้ำเมื่อมีการใช้งานที่ไม่ถูกต้อง
อินเทอร์เฟซได้รับการออกแบบโดยใช้หลักการของการมีเพียงไฟล์เดียวที่ใครๆ ก็ต้องการเพื่อเริ่มต้นและใช้งาน เพื่อให้บรรลุเป้าหมายนี้ เราจึงมีไฟล์เทมเพลต ไฟล์ภาษา jsx และ css ซึ่งทั้งหมดใช้เพื่อสร้างอินเทอร์เฟซ และนำมารวมกันในกระบวนการสร้าง
กระบวนการสร้างนี้จะช่วยให้คุณสามารถเปลี่ยนภาษาที่ใช้ วิธีการรวมไลบรารีจาวาสคริปต์ของบุคคลที่สามที่จำเป็น รูปลักษณ์และความรู้สึก หรือแม้แต่ส่วนประกอบหลักได้ตามที่คุณต้องการ
หากต้องการรันกระบวนการบิลด์ ให้รันคำสั่ง php ./build/build.php
จากรูท repo (คุณจะต้องติดตั้ง nodejs
และ npm
ไว้แล้ว) เมื่อรันแล้ว คุณจะเห็นผลลัพธ์ดังนี้:
Installing node modules
Building js and css
Creating single build file
Using remote js links from 'cloudflare'
Done!
สคริปต์บิลด์จะต้องติดตั้ง node_modules
เพียงครั้งเดียว ดังนั้นในบิลด์ต่อๆ ไปควรจะเร็วขึ้นเล็กน้อย!
กระบวนการสร้างจะสร้างไฟล์ css ที่คอมไพล์แล้วที่ build/interface.css
และจาวาสคริปต์ของอินเทอร์เฟซจะอยู่ใน build/interface.js
คุณสามารถใช้ทั้งสองสิ่งนี้ภายในกรอบงานและระบบเทมเพลตของคุณเองได้หากต้องการ
CSS สำหรับอินเทอร์เฟซอยู่ในไฟล์ build/_frontend/interface.scss
ทำการเปลี่ยนแปลงหากคุณต้องการเปลี่ยนสีหรือการจัดรูปแบบ
หากคุณทำการเปลี่ยนแปลงใดๆ ในไฟล์ scss คุณจะต้องเรียกใช้สคริปต์บิลด์เพื่อดูการเปลี่ยนแปลง
หากคุณต้องการเปลี่ยนอินเทอร์เฟซ ให้อัปเดตไฟล์ build/_frontend/interface.jsx
ซึ่งโดยพื้นฐานแล้วจะเป็นชุดของส่วนประกอบ ReactJS ที่นี่คุณสามารถเปลี่ยนเค้าโครงวิดเจ็ต วิธีการทำงานของรายการไฟล์ การแบ่งหน้า ฯลฯ
รันสคริปต์บิลด์อีกครั้งหากคุณทำการเปลี่ยนแปลงที่นี่
เทมเพลต PHP แบบ wrapper ที่ใช้ในกระบวนการสร้างและทำหน้าที่ส่งผ่านบิตข้อมูลต่างๆ ไปยังฝั่ง ReactJS อยู่ที่ build/template.phps
หากคุณต้องการอัปเดตเวอร์ชันของ ReactJS ที่ใช้ หรือวิธีจัดโครงสร้าง wrapper html (เช่น ต้องการส่งสิ่งเพิ่มเติมไปยังฝั่ง ReactJS) ไฟล์นี้จะเป็นไฟล์ที่คุณต้องการอัปเดต
อินเทอร์เฟซต้องการไฟล์ js ของบุคคลที่สามบางไฟล์เพื่อให้ทำงานได้อย่างถูกต้อง คุณมีตัวเลือกในการเปลี่ยนตำแหน่งที่จะดึงข้อมูลเหล่านี้ (ระหว่าง CloudFare, JSDelivr และ Unpkg) หรือคุณสามารถมี js js แบบโลคอลและอินไลน์ได้อย่างสมบูรณ์ (เช่น คุณมีนโยบาย CSP อยู่แล้วและมี URL ระยะไกลอยู่ ไม่อยู่ในรายการที่อนุญาต)
หากต้องการเปลี่ยนตำแหน่งของทรัพยากรบุคคลที่สาม ให้ใช้ตัวเลือก -r
หรือ --remote-js
ตามด้วย cloudflare
, jsdelivr
หรือ unpkg
ตัวอย่างเช่น หากคุณต้องการใช้ jsdelivr คุณจะต้องรันคำสั่ง build ดังนี้: php ./build/build.php -r jsdelivr
ค่าเริ่มต้นนี้เป็น cloudflare
หากคุณต้องการให้ js อยู่ในบรรทัด คุณสามารถใช้แฟล็ก -j
หรือ --local-js
เมื่อสร้าง เช่น php ./build/build.php -j
วิธีนี้จะดึงไฟล์สคริปต์ระยะไกลและฝัง js ลงในไฟล์ index.php
หลัก หากคุณต้องการสร้างมันอีกครั้งด้วยไฟล์ระยะไกล ให้รันคำสั่งอีกครั้งโดยไม่มีแฟล็ก การดึงไฟล์จะนำตัวเลือก -r
ของคุณมาพิจารณาหากคุณระบุ
มีสุภาษิตโบราณที่ว่า "ถ้าคุณรู้มากกว่าหนึ่งภาษา แสดงว่าคุณพูดได้หลายภาษา หากคุณไม่รู้ แสดงว่าคุณเป็นคนอังกฤษ" ไม่เพียงแต่เป็นคำกล่าวหาอันเลวร้ายต่อทัศนคติของชาวอังกฤษต่อภาษาอื่น ๆ เท่านั้น แต่ยังอธิบายด้วยว่าเหตุใด UI จึงเป็นภาษาอังกฤษเท่านั้น - เพราะบาปทั้งหมดของฉันคือชาวอังกฤษ
อย่างไรก็ตาม ขณะนี้คุณสามารถสร้างอินเทอร์เฟซด้วยภาษาอื่นได้แล้ว ในปัจจุบันนี้ ต้องขอบคุณผู้มีส่วนร่วม ทำให้ยังรองรับภาษาฝรั่งเศสและสเปนอีกด้วย หากใครต้องการสนับสนุนชุดภาษาเพิ่มเติม โปรดส่ง PR!
หากแพ็กภาษาอยู่ในไดเร็กทอรี build/_languages/
คุณสามารถใช้แฟล็ก -l
หรือ --lang
ได้ ตัวอย่างเช่น หากมีแพ็กภาษา fr.json
คุณสามารถใช้ php ./build/build.php -l fr
เพื่อสร้างด้วยภาษานั้น
มีการเพิ่มสคริปต์ผู้แต่งบางส่วนเพื่อช่วยในการสร้าง ได้แก่ composer build
, composer build-french
และ composer build-spanish
หากคุณต้องการสร้างไฟล์ภาษา build/_languages/example.json
มีทุกสิ่งที่คุณต้องการ มันเป็นโครงสร้าง json ธรรมดาโดยคีย์เป็นเวอร์ชันภาษาอังกฤษซึ่งตรงกับสิ่งที่อยู่ใน UI และค่าคือสิ่งที่คุณกำลังแปลงเป็น - ซึ่งในไฟล์ตัวอย่างจะว่างเปล่า หากค่าว่างเปล่าหรือไม่มีดัชนีสำหรับการแปล ก็จะใช้เวอร์ชันภาษาอังกฤษเท่านั้น สิ่งนี้ทำให้คุณสามารถแทนที่สตริงอินเทอร์เฟซบางส่วนหรือทั้งหมดได้ตามที่เห็นสมควร
หากต้องการเริ่มต้นกับภาษาใหม่ ให้คัดลอก example.json
ไปยังภาษาที่คุณต้องการซึ่งยังไม่มีอยู่ เช่น pt-br.json
หรือ pirate.json
จากนั้นกรอกคำแปลลงในค่าต่างๆ เมื่อเสร็จแล้ว ให้สร้างใหม่ด้วย php ./build/build.php -l pt-br
หรือ php ./build/build.php -l pirate
เวอร์ชัน 3.5.5
เพิ่มการแปลภาษาสเปนด้วย @cvc90 (PR#110)
เวอร์ชัน 3.5.4
การจัดการที่ดีขึ้นว่า JIT เปิดหรือปิดใช้งาน ตอนนี้ยังแสดง สาเหตุ ที่อาจถูกปิดใช้งานแม้ว่าคุณจะเปิดการตั้งค่าไว้ก็ตาม อินเทอร์เฟซยังปิดใช้งานสถิติกราฟและหน่วยความจำอย่างถูกต้องสำหรับ JIT หากปิดใช้งานด้วยเหตุผลใดก็ตาม
เวอร์ชัน 3.5.3
แก้ไขความไม่สอดคล้องกับลิงก์ในเอกสาร opcache บน php.net
เวอร์ชัน 3.5.2
ลบคำเตือนบางอย่างสำหรับ PHP 8.2 โดยการวาง namespace
และ use
คำสั่งในไฟล์ index.php
ที่รวมมา
เวอร์ชัน 3.5.1
นี่เป็นเพียง 3.5.0 แต่มีแท็กเวอร์ชันที่ถูกต้องเพื่อให้ Packagist มีความสุขและแก้ไขข้อผิดพลาดของฉัน
เวอร์ชัน 3.5.0
เวอร์ชันนี้จะเปลี่ยนวิธีที่กระบวนการสร้างรวมจาวาสคริปต์ไว้ด้วย
-j
/ --local-js
ได้ฝังจาวาสคริปต์ลงในไฟล์ index.php
แทนที่จะแยกเป็นไฟล์แยกต่างหาก-r
/ --remote-js
เพื่อให้คุณสามารถเลือกได้ว่าคุณจะได้รับไฟล์บุคคลที่สามจากที่ใด (เมื่อดึงข้อมูลในเครื่องหรือเมื่อเพิ่มเป็นลิงก์สคริปต์ระยะไกล) โดยมี cloudflare
, jsdelivr
หรือ unpkg
พร้อมใช้งาน ตัวเลือก เวอร์ชัน 3.4.0
เวอร์ชันนี้จะเพิ่มข้อมูลเพิ่มเติมเล็กน้อยเกี่ยวกับไฟล์ในแคช และอนุญาตให้กำหนดค่าเพิ่มเติมอีกเล็กน้อยผ่านสคริปต์การกำหนดค่าและบิลด์
datetime_format
ใหม่สำหรับการจัดรูปแบบค่าวันที่/เวลาที่ยืดหยุ่นmodified
ของไฟล์แคชลงในเอาต์พุต (เมื่อมีการเพิ่มหรืออัปเดตไฟล์)index.php
ด้วยไฟล์ js ในเครื่อง แทนที่จะเป็น URL ระยะไกล เวอร์ชัน 3.3.1
การปรับแต่งเล็กน้อยเพียงเล็กน้อย:
เวอร์ชัน 3.3.0
ข้อมูล JIT ที่เพิ่มส่วนใหญ่สำหรับ PHP 8:
false
หากคุณต้องการเปิดใช้งาน JIT คุณต้องใส่ค่าสำหรับการตั้งค่า opcache.jit_buffer_size ini ไม่เช่นนั้นจะถูกปิดใช้งานตามค่าเริ่มต้น
หากคุณไม่ได้ใช้ PHP 8 อินเทอร์เฟซจะชดเชยและไม่แสดงข้อมูล JIT เพิ่มเติม
เวอร์ชัน 3.2.1
การปล่อยการบำรุงรักษาเล็กน้อยไปที่:
เวอร์ชัน 3.2.0
อัปเดต ReactJS เป็นเวอร์ชันย่อส่วนล่าสุดและใช้แล้ว และปรับปรุงตัวเลือกการเรียงลำดับเล็กน้อยเมื่อไม่มีการแบ่งหน้า
เวอร์ชัน 3.1.0
เพิ่มความสามารถในการจัดเรียงรายการไฟล์แคชได้หลายวิธี
เวอร์ชัน 3.0.1
การอัปเดตเล็กน้อยที่จะใช้ http หรือ https เพื่อรับไลบรารี javascript ขึ้นอยู่กับสิ่งที่คุณใช้
เวอร์ชัน 3.0.0
แม้ว่าอินเทอร์เฟซส่วนใหญ่จะดูเหมือนกัน แต่ก็มีการเขียนใหม่ทั้งหมดภายใต้ประทุน! การเปลี่ยนแปลงที่โดดเด่นบางประการ ได้แก่:
เวอร์ชัน 2.5.4
ปรับตำแหน่งเนมสเปซ CSS เริ่มต้นให้เล่นได้อย่างดีภายในปลั๊กอิน Moodle และอาจเป็นระบบอื่นๆ ปรับแต่ง CSS บางส่วนด้วย
เวอร์ชัน 2.5.3
เพิ่มชื่อคลาส CSS และอัปเดตกฎสไตล์เพื่อใช้แล้ว
เวอร์ชัน 2.5.2
โปรแกรมแก้ไขด่วนสำหรับค่า optimisation_level ที่ออกมาใน v2.5.1
เวอร์ชัน 2.5.1
การแก้ไขข้อบกพร่องบางประการและปรับปรุงรายละเอียดระดับการปรับให้เหมาะสม
เวอร์ชัน 2.5.0
เพิ่มแผนภูมิไฮไลต์ใหม่เพื่อแสดงเปอร์เซ็นต์คีย์ที่แคชไว้พร้อมตัวเลือกในการเปิด/ปิดกราฟไฮไลต์แต่ละรายการ
เวอร์ชัน 2.4.1
ส่วนใหญ่เป็นการแก้ไขข้อบกพร่อง
memory_consumption
และ max_file_size
จะแสดงเป็นขนาดที่มนุษย์สามารถอ่านได้file_cache_only
ทำงานอยู่ เวอร์ชัน 2.4.0
เพิ่มการจัดเก็บคุกกี้สำหรับสถานะเรียลไทม์เพื่อให้สามารถเปิดใช้งานแบบเรียลไทม์ขณะโหลดได้ ชื่อคุกกี้และความยาว TTL สามารถปรับได้ในการกำหนดค่า
เวอร์ชัน 2.3.0
เพิ่มข้อมูลสำหรับสตริงภายในและความเข้ากันได้ของ PHP 5.4
เวอร์ชัน 2.2.2
นำมาซึ่งการเพิ่มประสิทธิภาพสำหรับรายการไฟล์เมื่อทำการกรอง
เวอร์ชัน 2.2.1
ขณะนี้เกจอัปเดตด้วยพัลส์แบบเรียลไทม์และแก้ไขปัญหาการปัดเศษสองสามรายการแล้ว
เวอร์ชัน 2.2.0
ให้ความสามารถในการเปิด/ปิดรายการไฟล์ (ค่าเริ่มต้นคือเปิด)
เวอร์ชัน 2.1.0
ตอนนี้ให้วิธีที่ง่ายกว่ามากในการกำหนดค่าตัวเลือกบางอย่าง ไม่ว่าจะเป็นเวลาในการสำรวจ การสลับความสามารถในการรีเซ็ตแคช การอัปเดตแบบเรียลไทม์ ฯลฯ นอกจากนี้ยังช่วยให้คุณแสดงค่าขนาดใหญ่ (การใช้หน่วยความจำและอัตราการเข้าชม) เป็นมาตรวัด กราฟแทนที่จะเป็นตัวเลขขนาดใหญ่
เวอร์ชัน 2.0.0
เปิดตัวการใช้ React.js ที่ให้ความสามารถในการอัปเดตข้อมูลเพิ่มเติมแบบเรียลไทม์ได้อย่างราบรื่น (โดยค่าเริ่มต้นทุกๆ ห้าวินาที) - ดังนั้นตอนนี้ไฟล์และภาพรวมจะได้รับการรีเฟรช มีรูปลักษณ์ที่ได้รับการปรับปรุง โดยลบการไล่ระดับสีออก และให้ความรู้สึกที่เรียบยิ่งขึ้น และโค้ดโดยทั่วไปมีการยกเครื่องใหม่
การเผยแพร่ GUI มีอยู่ที่:
https://github.com/amnuts/opcache-gui/releases/
หลายคนสงสัยว่า opcache-gui ทำงานบนอินสแตนซ์ของ PHP-FPM หรือไม่ เนื่องจากไฟล์ที่แสดงดูเหมือนจะไม่ใช่ทุกอย่างที่ถูกแคชไว้ และนั่นแตกต่างกับสิ่งที่ Apache อาจแสดง
โดยพื้นฐานแล้ว นั่นคือพฤติกรรมที่คาดหวัง และต้องขอบคุณความคิดเห็นดีๆ จากผู้ร่วมให้ข้อมูล Michalng คำอธิบายนี้จึงควรครอบคลุมถึงความแตกต่าง:
อินเทอร์เฟซสามารถแสดงเฉพาะสิ่งที่รู้เกี่ยวกับการใช้งาน OPcache ของอินสแตนซ์ OPcache ของตัวเอง ดังนั้นเมื่อเข้าถึงผ่าน Apache ด้วย mod_php จะสามารถเห็นเฉพาะการใช้งาน OPcache ของอินสแตนซ์ OPcache เว็บเซิร์ฟเวอร์ Apache นั้น เมื่อเข้าถึงด้วย CGI แบบคลาสสิก จะเห็นว่าตัวเองถูกแคชเมื่อมีการสร้างอินสแตนซ์ PHP และ OPcache ใหม่เท่านั้น ซึ่งในกรณีนี้ OPcache เองก็มักจะไม่สมเหตุสมผล
เพื่อให้สามารถตรวจสอบและจัดการ OPcache สำหรับเว็บแอปพลิเคชันทั้งหมด ทุกคนจำเป็นต้องใช้ FastCGI เดียวกัน เช่น อินสแตนซ์ PHP-FPM
ในกรณีของ Apache มักจะจำเป็นต้องกำหนดค่าไม่ให้ใช้ mod_php ภายใน แต่ส่งคำขอตัวจัดการ PHP ไปยังเซิร์ฟเวอร์ PHP-FPM ที่ใช้ร่วมกันผ่าน mod_proxy_fcgi ซึ่งต้องใช้ MPM ของเหตุการณ์ด้วย โดยทั่วไปจะเห็นเป็นการตั้งค่าที่ต้องการในปัจจุบัน โดยเฉพาะอย่างยิ่งสำหรับเว็บไซต์ที่มีการเข้าชมสูง เนื่องจากทุกคำขอที่เข้ามาด้วย MPM prefork + mod_php จะสร้างกระบวนการลูกของตัวเองโดยใช้เวลาและหน่วยความจำเพิ่มเติม ในขณะที่ MPM ของเหตุการณ์และเซิร์ฟเวอร์ PHP-FPM เฉพาะ เธรดตัวจัดการที่รอ (ปกติ) อยู่แล้วจะถูกใช้บน Apache และบนฝั่ง PHP แทบไม่ต้องใช้หน่วยความจำเพิ่มเติมหรือเวลาในการวางไข่ของกระบวนการเลย
สคริปต์ต้องการ PHP 7.1 ขึ้นไป ฉันไม่อยากดาวน์เกรดโค้ดเพื่อให้เข้ากันได้กับเวอร์ชัน 7.0 และหวังว่าตอนนี้คนส่วนใหญ่คงจะอัปเกรดแล้ว แต่ฉันซาบซึ้งจริงๆ ที่บางครั้งผู้คนไม่มีความสามารถในการเปลี่ยนเวอร์ชันของ PHP ที่พวกเขาใช้เพราะมันอยู่นอกเหนือการควบคุมของพวกเขา ดังนั้น หากคุณเป็นหนึ่งในผู้โชคร้าย คุณสามารถทำการเปลี่ยนแปลงต่อไปนี้กับ index.php
(หรือ Service.php
และเรียกใช้สคริปต์บิลด์) สำหรับบรรทัด:
public function getOption(?string $name = null)
public function getData(?string $section = null, ?string $property = null)
public function resetCache(?string $file = null): bool
มันจะเป็นกรณีของการลบ ?
จากแต่ละพารามิเตอร์