当前位置:  技术问答>linux和unix

APC Cache 安装使用教程

    来源: 互联网  发布时间:2016-08-05

    本文导语:  本帖最后由 zenwong 于 2010-02-17 14:18:00 编辑 原文地址:http://doc.zenw.org/developer/ch03s02.html APC Cache  PHP语言是一个功能强大的嵌入式HTML脚本语言,很多程序员都在使用这一语言来进行网站的创建。PHP APC,全称是Alternati...

本帖最后由 zenwong 于 2010-02-17 14:18:00 编辑
原文地址:http://doc.zenw.org/developer/ch03s02.html




APC Cache 

PHP语言是一个功能强大的嵌入式HTML脚本语言,很多程序员都在使用这一语言来进行网站的创建。PHP APC,全称是Alternative PHP Cache,官方翻译叫”可选PHP缓存”,但我个人觉得应该叫”另一个PHP缓存”。因为这个东西如果叫”可选PHP缓存”,容易给人一种可要可不要的,不怎么有用的错觉。

APC的主页是:http://pecl.php.net /package/apc.目前的版本是3.0.14,通过PECL安装,需要php4.3.0或更高版本.

PHP APC的安装: 一般是下载源代码然后phpize来编译安装,安装完以后在加上php.ini里加上 extension=apc.so 这么一行就行了.

PHP APC的使用: APC的使用其实倒说不上.APC是个优化器,自安装之日起,就默默地在后台为您的PHP应用服务了.您的所有PHP代码会被缓存起来. 另外,APC可提供一定的内存缓存功能.但是这个功能并不是十分完美,有报告说如果频繁使用APC缓存的写入功能,会导致不可预料的错误.如果想使用这个功能,可以看看apc_fetch,apc_store等几个与apc缓存相关的函数. 从PHP5.2开始,APC引入了一个小甜饼,解决了困扰大家已久的大文件上传的进度条问题.

PHP APC的高级使用

1.缓存期限: APC的缓存分两部分:系统缓存和用户数据缓存. 系统缓存 是自动使用的,是指APC把PHP文件源码的编译结果缓存起来,然后在再次调用时先对比时间标记。如果未过期,则使用缓存代码运行。默认缓存 3600s(一小时).但是这样仍会浪费大量CPU时间.因此可以在php.ini中设置system缓存为永不过期(apc.ttl=0).不过如果这样设置,改运php代码后需要restart一下您的web服务器(比如apache…).目前对APC的性能测试一般指的是这一层cache;

用户数据缓存由用户在编写php代码时用apc_store和apc_fetch函数操作读取、写入的.如果量不大的话我建议可以使用一下.如果量大,我建议使用 memcache会更好. 如果要享受APC带来的缓存大文件上传进度的特性,需要在php.ini中将apc.rfc1867设为1,并且在表单中加一个隐藏域 APC_UPLOAD_PROGRESS,这个域的值可以随机生成一个hash,以确何唯一.具体例子请参见前面给出的链接.

2.状态控制和分析: PHP APC的源码包自带了一个apc.php;您可以将这个文件上传到web服务器的某个目录下,用浏览器访问,这会显示当前的状态.我们可以从这里的表格分析当前的缓存状况,作出进一步优化. apc-info-clublocalhost2.png 这是某test站点的状态.您可以慢慢分析,这个工具会提供很多有用的工具.比如您可以看到哪些文件经常被包含(访问),您缓存的哪个变量经常被读取,或经常被更新等. 最后顺便提一句,有独立报告说,PHP APC的代码缓存、优化效果要高出zend优化器.就算不是真的,他开源而又免费,实在是一个相当不错的选择 


安装 

-- 下载地址 --

http://pecl.php.net/get/APC-3.0.19.tgz

http://pecl.php.net/get/APC-3.1.3.tgz


-- Windows下安装 --
php_apc.dll

php_apc.dll下载:apc3.0.17-dev.zip

将php_apc.dll放入 php.ini文件的extension_dir所指定的目录中(extension_dir = "C:Program Filesphp-5.2.10ext")

PHP.INI

在PHP.INI文件里加入如下

extension=php_apc.dll

apc.rfc1867 = on
apc.max_file_size = 200M
upload_max_filesize = 200M
post_max_size = 200M

apc.enabled = 1
apc.cache_by_default = on
apc.shm_segments = 1
apc.shm_size = 32
apc.ttl = 600
apc.user_ttl = 600
apc.num_files_hint = 0
apc.write_lock = On

-- Linux下安装 --

编译SO文件

apc 安装下了最新的APC-3.0.19.tgz,解压,进入目录

apc下载地址

http://pecl.php.net/package/APC

# tar -zxvf APC-3.0.19.tgz

# cd APC-3.0.19

# /usr/local/php/bin/phpize (生产configure文件)

如果这一步发生错误,请看这里:

#/usr/local/php/bin/phpize

Configuring for:
PHP Api Version:         20041225
Zend Module Api No:      20060613
Zend Extension Api No:   220060519
Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF
environment variable is set correctly and then rerun this script.

通过安装 autoconf 可以解决
centos下执行 yum install autoconf即可



# ./configure --enable-apc --enable-apc-mmap --with-php-config=/usr/local/php/bin/php-config

# make

# make install


拷贝添加SO文件

# cp /usr/local/lib/php/extensions/no-debug-zts-20060613/apc.so /usr/local/php/lib/php/extensions/apc.so

# chmod 755 /usr/local/php/lib/php/extensions/apc.so


修改PHP.INI使之启动APC模块

修改 php.ini下

extension_dir = "./"

extension_dir = "/usr/local/php/lib/php/extensions"

配置/etc/php.ini 末尾加入

extension=apc.so

apc.enabled = 1

apc.cache_by_default = on

apc.shm_segments = 1

apc.shm_size = 128

apc.ttl = 7200

apc.user_ttl = 7200

apc.num_files_hint = 1024

apc.write_lock = On

apc.gc_ttl=3600

apc.ttl=0

apc.mmap_file_mask=/tmp/apc.XXXXXX


重启webservice 




更多内容可访问: 
http://www.zenw.org 
http://doc.zenw.org 
http://doc.zenw.org/linux 
http://doc.zenw.org/mysql 
http://doc.zenw.org/developer 

|
前排占座APC Cache 安装使用教程[图片]

|
后排。。。。······


呼呼······

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • PHP缓存加速器 Alternative PHP Cache (APC)
  • PHP APC配置文件2套和参数详解


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3