FreeBSD:安装PHP xcache Opcode Cacher

时间:2020-01-09 10:38:34  来源:igfitidea点击:

问题描述:如何在FreeBSD操作系统下为Apache,lighttpd或ngnix Web服务器安装和配置xcache?

解决方法:XCache是一种快速,稳定的php操作码缓存器,已经过测试,现在可以在高负载的生产服务器上运行。

FreeBSD安装xcache

可以使用FreeBSD ports系统或pkg_add命令本身来安装xcache。
首先,更新端口树:

# portsnap fetch update

安装xcache,执行:

# cd /usr/ports/www/xcache
# make install clean

启用Xache

要启用xcahce,请将/usr/local/share/examples/xcache/xcache.ini配置文件复制到/usr/local/etc/php /中,并根据需要进行修改,执行:

# cp /usr/local/share/examples/xcache/xcache.ini /usr/local/etc/php/
# cd /usr/local/etc/php/
# vi xcache.ini

根据需要设置xcache.size和其他参数。
这是我的带有四核CPU和4GiG RAM的FreeBSD 7的xcache示例:

[xcache-common]
extension = xcache.so
 
[xcache.admin]
xcache.admin.enable_auth = On
xcache.admin.user = "admin"
; xcache.admin.pass = md5($your_password)
xcache.admin.pass = ""
 
[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  =               512M
; set to cpu count (cat /proc/cpuinfo |grep -c processor)
xcache.count =                 4
; 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  =            128M
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 = ""

重新启动Web服务器

输入以下命令以重新启动apache22:

# /usr/local/etc/rc.d/apache22 restart

如果您使用的是Nginx Web服务器,请执行:

# /usr/local/etc/rc.d/nginx restart

如果您使用的是lighttpd Web服务器,请执行:

# /usr/local/etc/rc.d/lighttpd restart