首页 > 技术文章 > PHP安装Xcache扩展

GaZeon 2017-07-01 17:23 原文

简述

XCache 是一个又快又稳定的 ​PHP opcode 缓存器. 经过良好的测试并在大流量/高负载的生产机器上稳定运行. 经过(在 linux 上)测试并支持所有现行 ​PHP 分支的最新发布版本, 如 PHP_5_1 PHP_5_2 PHP_5_3 PHP_5_4. 并完美支持线程安全/Windows. 与同类 opcode 缓存器相比更胜一筹。

 

Linux下扩展安装:

1,生成静态库

wget http://xcache.lighttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.gz
tar zxvf xcache-3.2.0.tar.gz
cd xcache-3.2.0
phpize
./configure --with-php-config=/usr/local/php/bin/php-config --enable-xcache 
make & make install

 2,配置php.ini

#vi /usr/local/php/lib/php.ini

#添加以下内容
[xcache-common]
extension=xcache.so

[xcache.admin]
xcache.admin.enable_auth=On
xcache.admin.user="(管理用户名)"
xcache.admin.pass="(MD5格式化后的密码)"

[xcache]
xcache.shm_scheme="mmap"
xcache.mmap_path="/tmp/xcache"
xcache.readonly_protection=Off
xcache.size=64M
xcache.count=1
xcache.slots=8k
xcache.ttl=3600
xcache.gc_interval=300
xcache.test=Off
xcache.readonly_protection=On
xcache.coredump_directory=""
xcache.cacher=On
xcache.stat=On
xcache.optimizer=On
xcache.var_size=4M
xcache.var_count=1
xcache.var_slots=8k
xcache.var_gc_interval=300
xcache.var_ttl=0
xcache.var_maxttl=0

[xcache.coverager] xcache.coverager=On xcache.coveragedump_directory=""

3,复制xcache自带管理工具到网站根目录

#复制到网站根目录下
cp -R ./htdocs /var/webroot/
#重命名
mv /var/webroot/htdocs /var/webroot/xcache_manager

 4,重启fpm

ps -aux |grep fpm
kill -USR2 xxx

phpinfo();看到Xcache即安装成功,你可以访问localhost/xcache_manager来管理查看xcache状态。

 

 

 

Windows下安装扩展:

1,->下载地址 找到合适的版本下载。

2,php_xcache.dll放到php的ext目录

3,将xcache.ini 或 xcache-zh-gb2312.ini 的内容添加到php.ini ,并修改下面配置

[xcache-common]
;; Windows 系统例子:
extension = php_xcache.dll

[xcache.admin]
xcache.admin.enable_auth = On
xcache.admin.user = "(登录用户名)"
xcache.admin.pass = "md5($您的密码)"

 

4,将htdocs目录复制到网站根目录,可以改为xcache_manager方便识别。

重启apache,查看phpinfo()是否成功安装xcache扩展。

成功后可使用localhost/xcache_manager查看管理xcache使用状况。

 

 

xcache配置的中文说明

;; 本文件只是例子, 请在 php.ini 里设置以便生效
[xcache-common]
;; 非 windows 例子:
extension = xcache.so
;; Windows 系统例子:
; extension = php_xcache.dll

[xcache.admin]
xcache.admin.enable_auth = On
xcache.admin.user = "mOo"
; xcache.admin.pass = md5($您的密码)
; 登录使用 $your_password
xcache.admin.pass = ""

[xcache]
; 这里的多数选项仅在 ini 里可以修改, 这里列出的都是默认值, 除非另外说明

; 选择底层内存共享实现方案
xcache.shm_scheme =        "mmap"
; 禁用: xcache.size=0
; 启用: xcache.size=64M 之类 (任意>0的值) 同时请注意您的系统 mmap 上限
xcache.size  =               60M
; 建议设置为 cpu 数 (cat /proc/cpuinfo |grep -c processor)
xcache.count =                 1
; 只是个 hash 参考值, 实际存储项目(php脚本/变量)可超过这个数字
xcache.slots =                8K
; 缓存项目的 ttl, 0=永久
xcache.ttl   =                 0
; 扫描过期项目的时间间隔, 0=不扫描, 其他值以秒为单位
xcache.gc_interval =           0

; 同上, 只是针对变量缓存设置
xcache.var_size  =            4M
xcache.var_count =             1
xcache.var_slots =            8K
; xcache_*() 函数 ttl 参数的默认值
xcache.var_ttl   =             0
; 限制 xcache_*() 函数 ttl 参数不超过此设置. 0=不限制
xcache.var_maxttl   =          0
xcache.var_gc_interval =     300

; /dev/zero 时无效
xcache.readonly_protection = Off
; 对于 *nix 系统, xcache.mmap_path 是文件路径而不是目录. (自动创建/覆盖)
; 如果您期望启用 ReadonlyProtection, 必须避免使用 "/dev/*", 可以使用类似 "/tmp/xcache"
; 不同 php 进程组不会共享同一个 /tmp/xcache
; 对于 Win32 系统, xcache.mmap_path=匿名MAP名字, 不是文件路径. 建议使用 XCache 字眼避免跟其他软件冲突
xcache.mmap_path =    "/dev/zero"


; 仅在 XCache 异常时有用. 设置为空(禁用) 或者类似 "/tmp/phpcore/" (能被 php 写入文件)
xcache.coredump_directory =   ""
; 仅用于 Windows. 除非 XCache 开发人员告诉你, 否则保持默认值
xcache.coredump_type =         0

; 异常时自动禁止缓存
xcache.disable_on_crash =    Off

; 启用实验性功能 (如果有)
xcache.experimental =        Off

; 以下是 Request 级可改设置. 可以 ini_set, .htaccess 等
xcache.cacher =               On
xcache.stat   =               On
xcache.optimizer =           Off

[xcache.coverager]
; 本功能开启后降低运行性能
; 仅在 xcache.coverager == On && xcache.coveragedump_directory == "非空值" 时本功能才会启用

; per request settings. 可以 ini_set, .htaccess 等
; 启用代码流程覆盖面信息采集以及 xcache_coverager_start/stop/get/clean() 等函数
xcache.coverager =           Off
xcache.coverager_autostart =  On

; 仅在 php ini 文件内设置
; 请确保本目录能被 coverage viewer 脚本读取 (注意 open_basedir)
xcache.coveragedump_directory = ""
View Code

 

 

 

 

常用函数

mixed xcache_get(string name)
bool  xcache_set(string name, mixed value [, int ttl])
bool  xcache_isset(string name)
bool  xcache_unset(string name)
bool  xcache_unset_by_prefix(string prefix)
int   xcache_inc(string name [, int value [, int ttl]])
int   xcache_dec(string name [, int value [, int ttl]])

#注意:xcache不能存放对象、资源等内容。

 

->官方文档

 

推荐阅读