欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

使用APC对PHP进行性能优化

shiping1 的头像
PHP作为脚本语言,每次运行都需要解释、编译运行。

APC(Alternative PHP Cache)是一个PHP的自由和开放的opcode缓存。它的目标是提供一个自由,开放,强大的缓存和优化PHP的中间代码的框架。

APC能够有效避免每次重复解释。

window平台下的dll下载地址:http://downloads.php.net/pierre/

linux平台下的源码下载地址:http://pecl.php.net/package/apc

 

window下的配置步骤:

1、将php-apc.dll文件拷贝到php目录下的ext文件夹。

2、编辑php.ini,末尾追加:

 

[plain] view plain copy
 
  1. [apc]  
  2. extension="php_apc.dll"  
  3. apc.enabled=1  
  4. apc.shm_segments=1  
  5. apc.shm_size=48  
  6. apc.ttl=7200  
  7. apc.user_ttl=7200  
  8. apc.num_files_hint=1024  
  9. apc.mmap_file_mask=d:/tmp/apc.XXXXXX  
  10. apc.enable_cli=1  

 

 

linux下的安装步骤:

1.下载源码包

wget http://pecl.php.net/get/APC-3.1.5.tgz

注:此处我选择的是3.1.5版本

2.解压、编译、安装

#tar -zxvf APC-3.1.5.tgz

#cd APC-3.1.5

#./configure --enable-apc --enable-mmap

#make

注:如果输入make,提示 'apc_regex' has no member named 'preg' 错误信息

我在测试安装过程中,也出现这个问题。谷歌后发现是因为未安装PCRE、PCRE-devel。

解决方法:yum -y install pcre pcre-devel

#make install

2.编辑php.ini

 

[plain] view plain copy
 
  1. [apc]  
  2. extension=apc.so  
  3. apc.enabled=1  
  4. apc.shm_segments=1  
  5. apc.shm_size=48  
  6. apc.ttl=7200  
  7. apc.user_ttl=7200  
  8. apc.num_files_hint=1024  
  9. apc.mmap_file_mask=/var/data/tmp/apc.XXXXXX  
  10. apc.enable_cli=1  

 

 

 

参数简单说明

apc.enabled 可以设成 0 来禁用 APC。

apc.shm_segments 对编译器缓存要分配的共享内存块的数目。

apc.optimization 优化级别。设为 0 则禁用优化器,更高的值则使用更主动的优化。

 

apc.ttl 缓存条目在缓冲区所允许的空闲时间的秒数。将此设为零意味着缓冲区有可能被阻赛了的缓存充满而导致新条目不被缓存。 

apc.num_files_hint Web 服务器上的被包含或被请求的不同源文件的数目的大概估计。如果不确定则设为 0 或去掉此项;此设定主要用在有数千个源文件的站点。

 

3、重启apache

 

另外,官方提供了一个用来查看APC状态的WEB页面。文件可以在APC源码包中得到,文件名apc.php

普通分类: