Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1121191
  • 博文数量: 150
  • 博客积分: 2739
  • 博客等级: 少校
  • 技术积分: 2392
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-07 12:28
文章分类

全部博文(150)

文章存档

2015年(2)

2014年(16)

2013年(10)

2012年(58)

2011年(64)

分类: LINUX

2012-01-29 10:51:48

       本来想自己写,网上一找还不少但是发现都是转载的而且并没有测试于是网上找了N篇,在这里面有一部分是直接复制网上的,我想参数都是这些也就不去官网上找了并将一些错误去掉直接用,并且自己将配置服务时常有的加进来。先说说加速器吧,比较稳定的有apc、eaccelerator这两个是我比较常用的, xcache是国人开发的(我到没有用过)。还有memcache用来加速数据库的缓存,下面一一道来:
一:APC全称是Alternative PHP Cache,官方翻译叫”可选PHP缓存”,它是PHP PECL中的一个扩展,好像是facebook在使用它,下面开始安装(ubuntu环境):

$wget
$tar xvzf APC-3.0.19.tgz
$cd APC-3.0.19/APC-3.0.19
$/usr/local/php/bin/phpize
$./configure –enable-apc –enable-apc-mmap –with-php-config=/usr/local/php/bin/php-config
$make
$sudo make install

下面我们再配置APC,因为我的PECL扩展路径改变了,所以我得移动下编译好的文件:
$sudo mv /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/apc.so /usr/local/php/lib/php/extensions/PECL

然后我们再编辑php.ini文件进行配置,请把下面的代码加入到php.ini中即可:
extension_dir = “/usr/local/php/lib/php/extensions/”
extension = apc.so
; APC
apc.enabled = 1
apc.shm_segments = 1
apc.shm_size = 64
apc.optimization = 1
apc.num_files_hint = 0
apc.ttl = 0
apc.gc_ttl = 3600
apc.cache_by_default = on


二:eaccelerator,这是一款比apc较好的(实际本人未测试)。下面是一些说明和配置方法:

eaccelerator.shm_size="32"
eAccelerator 可以使用的共享内存的数量 (以兆为单位) . "0" 是指操作系统的默认值. 默认值是 "0".可根据服务器的实际情况来调整,16,32,64,128都是可以的。

eaccelerator.cache_dir="/tmp/eaccelerator"
这个目录是给磁盘缓存使用. eAccelerator 在这里储存预先编译好的代码, 进程数据, 内容以及用户的自定义内容. 同样的数据也能被储存在共享内存中 (这样可以提高访问速度). 默认的设置是 "/tmp/eaccelerator".

eaccelerator.enable="1"
开启或关闭 eAccelerator。"1" 为开启,"0" 为关闭。默认值为 "1"。

eaccelerator.optimizer="1"
启或关闭内部优化器,可以提升代码执行速度。"1" 为开启,"0" 为关闭。默认值为 "1"。

eaccelerator.check_mtime="1"
打开或者关闭 PHP 的文件修改检查. "1" 是指打开, "0" 是指关闭. 如果您在修改以后重新编译 PHP 的文件,那么您应当设置为 "1". 默认值是 "1".

eaccelerator.debug="0"
开启或关闭调试日志记录。"1" 为开启,"0" 为关闭。默认值为 "0"。会将缓存命中得记录写入日志。

eaccelerator.filter=""
判断哪些 PHP 文件必须缓存。您可以指定缓存和不缓存的文件类型(如 "*.php *.phtml"等)
如果参数以 "!" 开头,则匹配这些参数的文件被忽略缓存。默认值为 "",即,所有 PHP 文件都将被缓存。

eaccelerator.shm_max="0"
当使用 " eaccelerator_put() " 函数时禁止其向共享内存中存储过大的文件。该参数指定允许存储的最大值,单位:字节 (10240, 10K, 1M)。"0" 为不限制。默认值为 "0"。

eaccelerator.shm_ttl="0"
当 eAccelerator 获取新脚本的共享内存大小失败时,它将从共享内存中删除所有在最后 "shm_ttl" 秒内没有存取的脚本缓存。默认值为 "0",即:不从共享内春中删除任何缓存文件。

eaccelerator.shm_prune_period="0"
当 eAccelerator 获取新脚本的共享内存大小失败时,他将试图从共享内存中删除早于"shm_prune_period" 秒的缓存脚本。默认值为 "0",即:不从共享内春中删除任何缓存文件。

eaccelerator.shm_only="0"
允许或禁止将已编译脚本缓存在磁盘上。该选项对 session 数据和内容缓存无效。默认值为 "0",即:使用磁盘和共享内存进行缓存。

eaccelerator.compress="1"
允许或禁止压缩内容缓存。默认值为 "1",即:允许压缩。

eaccelerator.compress_level="9"
指定内容缓存的压缩等级。默认值为 "9",为最高等级。

eaccelerator.keys = "disk_only"
eaccelerator.session = "disk_only"
eaccelerator.content = "disk_only"
设置内容缓存的存放的地方,可以设置为:
shm_and_disk 在共享缓存和硬盘(默认值)
shm 默认存在共享内存,如果共享内存已满或大小超过 "eaccelerator.shm_max" 的值,就存到硬盘
shm_only 只存放在共享内存
disk_only 只存放在硬盘
none 不缓存数据

eaccelerator.allowed_admin_path = "/var/www/html/21andy.com/eaccelerator"
这是控制面板的地址
安装包里有个control.php,你把它复制到网站的任意目录,可以用它查看和管理,这个必须指定,否则查看缓存内容的时候会出错

最后,来看一下我的 eAccelerator 设置

; eaccelerator
[eaccelerator]
zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so"
eaccelerator.shm_size="128"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="3600"
eaccelerator.shm_prune_period="3600"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
eaccelerator.keys = "disk_only"
eaccelerator.sessions = "disk_only"
eaccelerator.content = "disk_only"
eaccelerator.allowed_admin_path = "/var/www/html/21andy.com/eaccelerator"

另外,再说下 eAccelerator 的安装

# wget
# tar -jxvf eaccelerator-0.9.6.tar.bz2
# cd eaccelerator-0.9.6
# /usr/local/php/bin/phpize
# ./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config
# make && make install

Tags: 

本文地址: http://www.21andy.com/blog/20100207/1646.html

三:xcache的配置:

XCache 是一个又快又稳定的 PHP opcoolcode 缓存器. 经过良好的测试并在大流量/高负载的生产机器上稳定运行. 经过(在  上)测试并支持所有现行 PHP 分支的最新发布版本, 如 PHP_4_3 PHP_4_4 PHP_5_0 PHP_5_1 PHP_5_2 HEAD(6.x), 并支持线程安全/Windows. 与同类 opcoolcode 缓存器相比更胜一筹, 比如能够快速跟进 PHP 版本.下面介绍如何安装配置。
1、安装xcache

  1. wget
  2. tar -zxvf xcache-1.3.2.tar.gz
  3. cd xcache-1.3.2
  4. /usr/local/php/bin/phpize
  5. ./configure --prefix=/usr/local/xcache --enable-xcache
  6. make
  7. make install

2、配置xcache
打开php.ini文件,增加如下代码:

  1. [xcache-common]
  2. ; change me - 64 bit php => /usr/lib64/php/modules/xcache.so
  3. ; 32 bit php => /usr/lib/php/modules/xcache.so
  4. zend_extension = /usr/lib64/php/modules/xcache.so
  5.  
  6. [xcache.admin]
  7. xcache.admin.auth = On
  8. xcache.admin.user = "mOo"
  9. ; xcache.admin.pass = md5($your_password)
  10. xcache.admin.pass = ""
  11.  
  12. [xcache]
  13. xcache.shm_scheme =        "mmap"
  14. xcache.size  =               32M
  15. xcache.count =                 1
  16. xcache.slots =                8K
  17. xcache.ttl   =              3600
  18. xcache.gc_interval =         300
  19.  
  20. ; Same as aboves but for variable cache
  21. ; If you don't know for sure that you need this, you probably don't
  22. xcache.var_size  =            0M
  23. xcache.var_count =             1
  24. xcache.var_slots =            8K
  25. xcache.var_ttl   =             0
  26. xcache.var_maxttl   =          0
  27. xcache.var_gc_interval =     300
  28.  
  29. ; N/A for /dev/zero
  30. xcache.readonly_protection = Off
  31.  
  32. xcache.mmap_path =    "/dev/zero"
  33.  
  34. xcache.cacher =               On
  35. xcache.stat   =               On

注意修改zend_extension = /usr/lib64/php/modules/xcache.so为正确的路径。
详情的配置说明:

              上面是自己选择个一个配置上的,两个或以上本人从来没有这样搞过(如果你有兴趣可以自己在测试环境中玩玩,毕竟企业需要的是稳定。上面三个你可以随意选择,我在配置是大多数是选择eaccelerator这个模块的。配置成功后,可以再写个index.php的文件里面写上:echo "" >/var/www/html/index.php 。说明一下,/var/www/html/是我设置的网站目录,在游览器中输入:找一找有没有acp,eaccelerator,xcahe中的字样和信息(根据你自己选择的哪个就是哪个)

              在配置时php.ini这个文件,我曾很是郁闷有网上说放在php/etc/这个相对路径下,但是配置的模块不曾起作用就只好放在:php/lib/这个目录中(经我搭建的服务都是放在这里,)

             下面说说,memcache的配置吧。这是个数据库缓存能有效的提高效率,这主要与它的工作原理有关吧!最好请求老天千万别断电,我曾试过直接断电最后的结果是数据库中没有任何数据--全部丢失(idc机房好像也没有断过电,我是没有遇到过)。不说废话的了,上配置方法(对了,令加一句memcache启动脚本我这里有你可以直接拿去用)

 五:memcache的配置安装:

        软件下载:libevent(配置memcache需要用到的),下载地址:

                         memcache下载地址:

                         memcache的php模块下载地址:

 安装php的memcache模块:

  1. make clean
  2. tar -vxzf memcache-1.5.tgz
  3. /home/system/php/bin/phpize
  4. ./configure --enable-memcache --with-php-config=/home/system/php/bin/php-config --with-zlib-dir
  5. # make
  6. # make install
  7. 安装完后会有类似这样的提示:
  8. Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20050922/
  9. 把这个记住
  10. 然后修改php.ini

  11. extension_dir = "./"
  12. 修改为
  13. extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20050922/"
  14. 并添加一行
  15. extension=memcache.so
  16.        游览器直接访问phpinfo会看到相应的模块启动起来的

  安装libenve:

  1. 安装libevent-1.3a.tar.gz
  2. # tar -xzf libevent-1.4.8-stable.tar.gz
  3. # cd libevent-1.4.8-stable
  4. make clean
  5. ./configure --prefix=/usr

安装:memcache

  1. # tar -xzf memcached-1.2.6.tar.gz
  2. # cd memcached-1.2.6
  3. make clean
  4. ./configure --prefix=/home/system/memcached --with-libevent=/usr
  5. # make
  6. # make install

               如果 libevent 不是安装在 /usr 目录下,那么需要把 libevent-1.2a.so.1 拷贝/链接(ln -s /usr/lib/libevent-1.4.so.2 /lib64/libevent-1.4.so.2)到 /usr/lib 中,否则memcached 无法正常加载。运行以下命令来启动memcached

      memcache启动方法:

  1. /usr/local/bin/memcached --m 2048 -u root -l 192.168.1.100 -p 12111 -c 1024 -P /tmp/memcached.pid

          memcache关闭: kill /tmp/memcached.pid

阅读(1042) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~