XCache คือ

คือ Module Cache Opcode ให้กับ PHP กล่าวคือ โดยปกติ PHP ทำงานแบบ Interpreter หรือแปลชุดคำสั่งเป็นภาษาเครื่อง แล้วจึงประมวลผลคำสั่ง และสั่งการทำงาน แต่ XCache จะช่วยแปลคำสั่งให้อยู่ในรูปของ opcode เมื่อมีการเรียกใช้งาน Script ชุดเดิม ก็ไม่ต้องแปลคำสั่งซ้ำอีก ทำให้ PHP สามารถทำงานได้เร็วขึ้น และใช้ Memory (Ram) น้อยลงอีกด้วย

วิธีการติดตั้ง XCache

  • wget http://xcache.lighttpd.net/pub/Releases/2.0.1/xcache-2.0.1.tar.gz
  • tar xzf xcache-2.0.1.tar.gz
  • cd xcache-2.0.1
  • phpize
  • ./configure --enable-xcache
  • make && make install
  • cat xcache.ini >> /usr/local/lib/php.ini
  • vi /usr/local/lib/php.ini
เพิ่มก่อน zend
zend_extension = /usr/lib64/extensions/no-debug-non-zts-20060613/xcache.so

เช่น
zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20060613/xcache.so
zend_extension=/usr/local/lib/ioncube_loader_lin_5.2.so
zend_extension=/usr/local/lib/ZendOptimizer_5.2.so

ปรับแต่งการตั้งค่า Config XCache ตามเหมาะสม

[xcache]
; ini only settings, all the values here is default unless explained

; select low level shm/allocator scheme implemenation
xcache.shm_scheme =        "mmap"
; to disable: xcache.size=0
; to enable : xcache.size=64M etc (any size > 0) and your system mmap allows
xcache.size  =               60M
; set to cpu count (cat /proc/cpuinfo |grep -c processor)
xcache.count =                 8
; just a hash hints, you can always store count(items) > slots
xcache.slots =                8K
; ttl of the cache item, 0=forever
xcache.ttl   =                 0
; interval of gc scanning expired items, 0=no scan, other values is in seconds
xcache.gc_interval =           0

; same as aboves but for variable cache
xcache.var_size  =            4M
xcache.var_count =             1
xcache.var_slots =            8K
; default ttl
xcache.var_ttl   =             0
xcache.var_maxttl   =          0
xcache.var_gc_interval =     300

xcache.test =                Off
; N/A for /dev/zero
xcache.readonly_protection = Off
; for *nix, xcache.mmap_path is a file path, not directory.
; Use something like "/tmp/xcache" if you want to turn on ReadonlyProtection
; 2 group of php won't share the same /tmp/xcache
; for win32, xcache.mmap_path=anonymous map name, not file path
xcache.mmap_path =    "/dev/zero"


; leave it blank(disabled) or "/tmp/phpcore/"
; make sure it's writable by php (without checking open_basedir)
xcache.coredump_directory =   ""

; per request settings
xcache.cacher =               On
xcache.stat   =               On
xcache.optimizer =           Off

[xcache.coverager]
; per request settings
; enable coverage data collecting for xcache.coveragedump_directory and xcache_coverager_start/stop/get/clean() functions (will hurt executing performance)
xcache.coverager =          Off

; ini only settings
; make sure it's readable (care open_basedir) by coverage viewer script
; requires xcache.coverager=On
xcache.coveragedump_directory = ""



xcache.size ขนาดของ cache
xcache.count จำนวน Concurrency หรือ จำนวนของ CPU Core
xcache.slots ขนาด slot ในการเก็บ cache

 
  • ทำการ Restart Web Service ( httpd )
/etc/ini.d/httpd restart
  • ตรวจสอบการติดตั้ง xcache จาก
php -v
 

สามารถตรวจสอบเวอร์ชั่น xcache ล่าสุดจาก
http://xcache.lighttpd.net/pub/Releases/

ไอเรียลลี่โฮส
สำหรับการสนับสนุน และช่วยเหลือ
http://www.ireallyhost.com/support
ข้อกำหนดในการเผยแพร่บทความ ข่าวสาร
** บทความนี้มีลิขสิทธิ์ ไม่อนุญาติให้คัดลอก ทำซ้ำ ดัดแปลงก่อนได้รับอนุญาต **
โปรดระบุแหล่งที่มา บริษัท เอ็กซ์ตร้า คอร์ปอเรชั่น จำกัด / https://www.ireallyhost.com