XCache 是一个又快又稳定的 PHP opcode 缓存器. 经过良好的测试并在大流量/高负载的生产机器上稳定运行. 经过(在 linux 上)测试并支持所有现行 PHP 分支的最新发布版本, 如 PHP_5_1 PHP_5_2 PHP_5_3 PHP_5_4. 并完美支持线程安全/Windows. 与同类 opcode 缓存器相比更胜一筹, 比如能够快速跟进 PHP 版本.
更多详细信息,请访问Xcache官方网站:http://xcache.lighttpd.net/
安装步骤:
1、解压tar.gz包
[root@localhost ~] # tar xf xcache-3.0.4.tar.gz -C /usr/local/src [root@localhost ~] # cd /usr/local/src [root@localhost src] # cd xcache-3.0.4/ ### 查看安装步骤 [root@localhost xcache-3.0.4] # vim INSTALL Installtion: $ phpize --clean && phpize $ . /configure --help $ CFLAGS= 'your cflags' . /configure -- enable -xcache -- enable ... $ make $ su # make install (update php.ini, restart php) ### 用本地的解释器探测模块所依赖的版本号/扩展API,生成序列号标记,而后才能产生configure文件,才能编译 [root@localhost xcache-3.0.4] # /usr/local/php/bin/phpize [root@localhost xcache-3.0.4] # ./configure --enable-xcache --enable-xcache-coverager --enable-xcache-optimizer --with-php-config=/usr/local/php/bin/php-config # 注意: -- enable -xcache # 启用xcache -- enable -xcache-vocerager # 附加特性 -- enable -xcache-optimizer # 启用操作码优化 [root@localhost xcache-3.0.4] # make && make install ## 安装完成后,会提示xcache.so模块的路径, 我们把xcache.so移动到/usr/local/php/include/php/ext目录下,方便管理 Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-zts-20100525/ [root@localhost xcache-3.0.4] # mv /usr/local/php/lib/php/extensions/no-debug-zts-20100525/xcache.so /usr/local/php/include/php/ext/ ## 生成Xcache管理员的密码(MD5密文) [root@localhost ~] # echo -n '123456' | md5sum e10adc3949ba59abbe56e057f20f883e |
2、整合php和xcache
[root@localhost xcache-3.0.4] # cp xcache.ini /etc/php.d/ ### 编辑xcache.ini ##通常仅编辑 extension = xcache.admin.enable_auth = xcache.admin.user = xcache.admin.pass = ##################################### [xcache-common] extension = "/usr/local/php/include/php/ext/xcache.so" ;xcache.so路径 [xcache.admin] xcache.admin.enable_auth = On ;开启验证 xcache.admin.user = "xcache" ;验证名 xcache.admin.pass = "e10adc3949ba59abbe56e057f20f883e" ;md5后的验证密码, 亦即 echo -n "123456" | md5sum,留空则禁用管理页面. [xcache] xcache.shm_scheme = "mmap" ; 决定 XCache 如何从系统分配共享内存 xcache.size=60M ; 0 禁止, 非 0 则启用缓存器. 请注意您系统所允许的 mmap 最大值. xcache.count =1 ; 指定将 cache 切分成多少块.( cat /proc/cpuinfo | grep -c processor) xcache.slots =8K ; 只是作为 hash 槽个数的参考值, 您可以放心地缓冲超过这个个数的项目. xcache.ttl=0 ; 设置缓冲项目的 Ttl (Time To Live) 值, 0=永不过期. xcache.gc_interval =0 ; 检查过期项目, 回收内存空间的间隔. xcache.var_size=4M xcache.var_count =1 xcache.var_slots =8K ; 同上, 不过用于数据缓冲而不是 opcode 缓冲. xcache.var_ttl=0 ; xcache_(get| set |inc|dec) 等的默认 ttl 值. xcache.var_maxttl=0 ; 最大 ttl 值, 程序无法指定超过这个最大值的 ttl. xcache.var_gc_interval =300 xcache. test =Off xcache.readonly_protection = On ;如果启用了 ReadonlyProtection, 将会略微降低性能, 但是会提高一定的安全系数. 这个选项对于xcache.mmap_path = /dev/zero 无效. xcache.mmap_path = "/tmp/xcache" ;缓存文件,不是目录,需要手动创建 xcache.coredump_directory = "" xcache.cacher =On ;使用/不使用 opcode 缓存器. xcache.size = 0 时无效. xcache.stat=On ;使用 stat() 发现检查脚本更新. xcache.optimizer =Off [xcache.coverager] xcache.coverager =On ;启用代码覆盖信息采集到. 启用后xcache.coveragedump_directory 设置以及xcache_coverager_start /stop/get/clean () 才可以使用. (启用后会对降低影响) xcache.coverager_autostart = On ;每个页面请求自动调用 xcache_coverager_start xcache.coveragedump_directory = "" |
3、生成xcache缓存文件
12 | [root@localhost ~] # touch /tmp/xcache [root@localhost ~] # chmod 777 /tmp/xcache |
4、使用admin管理
其实要想作为一个站点,可以有5种方式进行访问 :
(物理目录、虚拟目录、基于IP、基于端口、基于主机)
# 拷贝Xcache管理程序到网站根目录下 [root@localhost xcache-3.0.4] # cp -a htdocs /usr/local/apache/htdocs/xadmin # 重启 httpd, 如果fastCGI方式,还需要重启php-fpm服务 [root@localhost ~] # service httpd restart [root@localhost ~] # service php-fpm restart 报错: Starting php-fpm: [21-Jul-2014 18:55:21] NOTICE: PHP message: PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/php/include/php/ext/xcache.so' - /usr/local/php/include/php/ext/xcache .so: undefined symbol: core_globals_id in Unknown on line 0 ######################### ????????? # 这里我不知道出现了什么情况, 不知道是不是版本的问题 # httpd-2.2.27 , php-5.4.30 , xcache-3.0.4 , fastCGI 方式 # # 希望大家解答一下 ######################### # 后来,我还是使用module的方式, 就一切OK。。 [root@localhost ~] # vi /etc/httpd/httpd.conf LoadModule php5_module modules /libphp5 .so #LoadModule fastcgi_module modules/mod_fastcgi.so [root@localhost httpd] # service httpd restart |