PHP APC缓存安装配置教程

PHP APC提供两种缓存功能,即缓存Opcode(目标文件),我们称之为apc_compiler_cache,同时它还提供一些接口用于PHP开发人员将用户数据驻留在内存中,我们称之为apc_user_cache,下面我们来看看PHP APC缓存安装配置.

最简单的方法,找到php安装目录的pecl

自动安装

# /usr/local/php/bin/pecl install apc

接下来按提示一步步完成即可

然后配置 /usr/local/php/etc/php.ini 末尾加入

extension=apc.so

手动安装

官网:http://cn2.php.net/manual/zh/book.apc.php

下载:http://pecl.php.net/package/APC 找最新的

下载apc

  1. # wget http://pecl.php.net/get/APC-3.1.13.tgz
  2. # tar -zxvf APC-3.1.13.tgz
  3. # cd APC-3.1.13

生成configure文件

# /usr/local/php/bin/phpize

执行configure 并且 make && make install

  1. # ./configure --enable-apc --enable-apc-mmap --with-php-config=/usr/local/php/bin/php-config
  2. # make
  3. # make install

拷贝添加SO文件

  1. # cp /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/apc.so /usr/local/php/lib/php/extensions/apc.so
  2. # chmod 755 /usr/local/php/lib/php/extensions/apc.so

修改php.ini使之启动APC模块

  1. # vi /usr/local/php/etc/php.ini
  2. extension_dir = "/usr/local/php/lib/php/extensions"
  3. extension=apc.so //开源软件:phpfensi.com
  4. apc.enabled = 1
  5. ; apc.cache_by_default = on
  6. ; apc.shm_segments = 1
  7. ; apc.shm_size = 128
  8. ; apc.ttl = 7200
  9. ; apc.user_ttl = 7200
  10. ; apc.num_files_hint = 1024
  11. ; apc.write_lock = On
  12. ; apc.gc_ttl=3600
  13. ; apc.ttl=0
  14. ; apc.mmap_file_mask=/tmp/apc.XXXXXX

重启apache

# service httpd restart

使用APC test.php

  1. <?php
  2. print_r(apc_cache_info());
  3. 注意 在浏览器看会不是很友好,可以查看网页源代码就看到很清晰
  4. Array
  5. (
  6. [num_slots] => 1031
  7. [ttl] => 0
  8. [num_hits] => 3
  9. [num_misses] => 1
  10. [num_inserts] => 1
  11. [expunges] => 0
  12. [start_time] => 1398341530
  13. [mem_size] => 4240
  14. [num_entries] => 1
  15. [file_upload_progress] => 1
  16. [memory_type] => mmap
  17. [locking_type] => pthread mutex Locks
  18. [cache_list] => Array
  19. (
  20. [0] => Array
  21. (
  22. [type] => file
  23. [device] => 64768
  24. [inode] => 1179758
  25. [filename] => /data/www/www.111cn.net /test.php
  26. [num_hits] => 3
  27. [mtime] => 1398341609
  28. [creation_time] => 1398341617
  29. [deletion_time] => 0
  30. [access_time] => 1398341630
  31. [ref_count] => 1
  32. [mem_size] => 4240
  33. )
  34. )
  35. [deleted_list] => Array
  36. (
  37. )
  38. [slot_distribution] => Array
  39. (
  40. [109] => 1
  41. )
  42. )

多次点击,可以发现 num_hits 在变化,说明缓存命中了!

压力测试看效果,关闭开启apc分别压力测试对比一下你会发现开启apc之后吞吐率会比没开启apc要提高许多.

# ab -n1000 -c10 http://www.phpfensi.com/test.php