朋友要做用MediaWiki做网站,用的是Mediawiki1.18.4,安装过程中提示系统需要配置缓存插件,比如eaccelerator、apc或者xcache,之前我一直用apc,不知道为什么这次安装过程中apc和我的php版本不兼容,无奈只好选择Xcache,网上搜索了一些资料,谈到Xcache是由华人开发的,效率很高,并且维护的比较好。
下面一段摘自百度百科:
XCache 是一个开源的 opcode 缓存器/优化器, 这意味着他能够提高您服务器上的 PHP 性能. 他通过把编译 PHP 后的数据缓冲到共享内存从而避免重复的编译过程, 能够直接使用缓冲区已编译的代码从而提高速度. 通常能够提高您的页面生成速率 2 到5 倍, 降低服务器负载. |
Xcache的安装非常简单,安装之后需要稍做配置,下面梳理一下我安装使用的步骤:
一、Ports安装
- cd /usr/ports/www/xcache/; make install clean
安装完成之后要进行设定,设定的例子放在 /usr/local/share/examples/xcache/,里面也包含了xcache 的管理界面。
二、配置文件
- cp /usr/local/share/examples/xcache/xcache.ini /usr/local/etc/php/
拷贝xcache.ini文件到/usr/local/etc/php/文件夹下,打开xcache.ini:
- [xcache-common]
- ;; install as zend extension (recommended, but not working yet)
- ; zend_extension = /usr/local/lib/php/20060613/xcache.so
- ; zend_extension_ts = /usr/local/lib/php/20060613/xcache.so
- ;; or install as extension
- extension = xcache.so
- [xcache.admin]
- xcache.admin.enable_auth = On
- xcache.admin.user = "admin" //管理用户名
- ; xcache.admin.pass = md5($your_password) //这一行可以不要
- xcache.admin.pass = "******" // 这个是你的密码进行md5加密后的串
- [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 = 1
- ; 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 = 256M //可以根据实际情况进行调整,我之前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 = "/tmp/xcache" //xcache这是个一个文件,不是文件夹
- ; 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 = ""
这个文件需要修改的不多,只需要改用户,密码(php,md5生成),xcache.var_size,xcache.mmap_path这几个地方;
设置好之后,需要到tmp目录下建立xcache文件,不是目录哦!
- touch /tmp/cache && chmod 777 /tmp/cache
完成之后,就可以重启web服务器了,appache或者nginx;查看xcache是否生效可以通过phpinfo函数查看,或者用php -v 也可以看到:
- PHP 5.2.17 with Suhosin-Patch 0.9.7 (cli) (built: May 31 2012 17:26:19)
- Copyright (c) 1997-2009 The PHP Group
- Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies
- with XCache v1.3.2, Copyright (c) 2005-2011, by mOo
三、安装XCache管理界面
- cp -r /usr/local/share/examples/xcache/admin /usr/local/www/xcache
我另外建立了一个虚拟目录,指向xcache,此时访问xcache还会报错,是因为还需要配置php.ini文件,这个地方我也不太明白为什么要这样做,是在http://xcache.lighttpd.net/wiki/InstallAdministration中查到的;
- php -r "echo md5('password');"
会生成一个md5的串码,将这个串码写入xcache.ini;并将这两句话
- xcache.admin.user = "admin"
- xcache.admin.pass = "*******************************"
写入php.ini;php.ini和xcache中的用户密码是对应的。
这样就算完成了,应该可以直接访问Xcache的管理界面了
参考1:http://blog.wu-boy.com/2011/09/how-to-install-xcache-on-freebsd/
参考2:http://xcache.lighttpd.net/wiki/InstallAdministration