APC简介

  APC(Alternative PHP Cache)是一个PHP缓存。它在内存中存储PHP页面并且减少了硬盘的I/O。这对于性能的提升十分明显。你甚至可以在CPU使用率下降50%的情况下提升系统50%的性能。

  这篇教程我们会告诉大家如何在windows上安装APC。我已经在windows server 2003上成功测试。当然,在你也可以使用windows xp做为测试服务器。

  windows下安装PHP的APC拓展

  注意:你不能在一天服务器上同时安装APC和Zend Optimiser,二者只能选其一。

  按照下面的方法安装PHP的APC拓展。

  下载正确的版本

  我是用的PHP版本是5.2.6,附上下载地址:php_apc_dll for php5_2_6

  注意:确定你所下载的APC拓展版本对应了你的PHP版本。

  设置php.ini

  编辑php.ini文件,向其中的拓展区域部分添加如下代码

  extension = php_apc.dll

  重启服务器,使用phpinfo查看是否成功安装

  phpinfo();

  phpinfo查看apc拓展是否安装成功

  查看可用的内存

  创建一个php文件apcmeminfo.php

  print_r(apc_sma_info());

  //由缓存使用的内存数量使用这个公式来计算:

  total_memory = apc.shm_segments * apc.shm_size

  在这个例子中,可用的内存大约32 Mb。通常,如果我们需要在我们的缓存中超过32 Mb,我们应该增加APC使用的分段数量。然而,这可以导致web服务器错误,因此最好是增加片断的大小。我们应该逐步为缓存增加可用的总量,以避免内存的流失。

  默认的APC如下:

  apc.cache_by_default = On

  apc.enable_cli = Off

  apc.enabled = On

  apc.file_update_protection = 2

  apc.filters =

  apc.gc_ttl = 3600

  apc.include_once_override = Off

  apc.max_file_size = 1M

  apc.num_files_hint = 1000

  apc.optimization = Off

  apc.report_autofilter = Off

  apc.shm_segments = 1

  apc.shm_size = 30

  apc.slam_defense = 0

  apc.stat = On

  apc.ttl = 0

  apc.user_entries_hint = 100

  apc.user_ttl = 0

  apc.write_lock = On

  关于APC完整的参数设置的解释,请查阅:http://www.php.net/apc。

  下面是一个php.ini中的一个APC块。请将它们粘贴进你的php.ini文件中:

  apc.enabled = 1

  apc.shm_segments = 1

  apc.shm_size = 64

  apc.max_file_size = 10M

  apc.stat=1

  剩余其它的设置将会使用默认值。

  设置临时目录

  APC需要一个临时目录来存储文件。它会尝试在windows的临时目录缓存文件,事先请给临时目录写的权限。

  监控和调优缓存

  监控和调优apc缓存

  APC源包含一个php脚本,该脚本对于监控和调优性能的缓存是很有用的。

  1, 下载APC监控文件:http://pecl.php.net/package/apc

  2, 压缩包中的apc.php文件显示APC监控信息。

  3, 运行这个文件,你会看到一个图形显示你的缓存一些统计数据。

  4, 调优缓存,查看General Cache Information and Detailed Memory Usage and Fragmentation sections(总体缓存信息和详细的内存使用以及碎片部分)。

  5, 监视Cache Full Count和碎片百分比,如果Cache Full Count大于0,表示缓存已满并且频繁读写,因为没有足够的内存被分配。增加apc.shm_size可解决问题。

  6, 碎片百分比应该是0%,但是随着内存频繁的读写,其值会上涨。

  apc.php的安全

  注意apc.php的安全,应该使用安全认证的方式来控制apc.php的信息输出,比如:

  // Moodle user Authentication

  require_once("../config.php");

  require_once($CFG--->libdir.'/adminlib.php');

  require_login();

  require_capability('moodle/site:config', get_context_instance(CONTEXT_SYSTEM, SITEID));

  // Disable APC Auth(APC 的安全认证)

  defaults('USE_AUTHENTICATION',0);

  //....

APC配置主要讲解在WIN下的配置,类linux下的配置网上文章比较多 
1.下载php_apc.dll 到PHP的ext目录下 
2.修改php.ini 添加extension=php_apc.dll 
在php.ini尾部添加配置项 
; APC Setting 
[APC] 
;开启stat会报错 
;apc.stat=0 
apc.enabled=”1″ 
apc.shm_segments=”1″ 
;这里的问题,这里修改了默认内存配置WIN7下出错,不知道大家遇到没的? 
;apc.shm_size=”128″ 
; apc.ttl=7200 
; apc.user_ttl=7200 
; 修正參數 
apc.ttl=”300″ 
apc.user_ttl=”300″ 
apc.num_files_hint=”1024″ 
apc.mmap_file_mask=”E:/Wamp/tmp/apc.XXXXXX” 
apc.enable_cli=”1″

php apc 安装的更多相关文章

  1. ubuntu apc 安装

    在ubuntu下安装APC,只需要两条命令,便可将APC和php绑一起.     安装代码:          sudo apt-get install  -y apache2-prefork-dev ...

  2. PHP5.5+ APC 安装

    因php 语言特性(短链接), 没法实现共享内存来提升性能. apc的出现给出了一个解决方案 .不过很可惜5.5+以后PHP官方已经废弃掉这个扩展. 幸好出现了 apcu扩展提供后续功能 api 也没 ...

  3. PHP APC安装与使用

    先要解决一下httpd-devel依赖库问题 yum install cyrus-sasl-devel db4-devel openldap apr apr-util apr-util-devel p ...

  4. PHP扩展--APC缓存安装与使用

    apc安装 wget http://pecl.php.net/get/APC-3.1.13.tgz tar zxvf APC-3.1.13.tgz cd APC-3.1.13 /usr/local/p ...

  5. centos 安装php缓存 apc或zend-opcode

    去官方下载apc:pecl.php.net 搜索apc,安装最新的. #wget http://pecl.php.net/get/APC# tar -xzvf APC-3.1.9.tgz#cd  AP ...

  6. zabbix 2.2.2在centos 6.3 x86_64上的安装

    zabbix 2.2.2在centos 6.3 x86_64上的安装   更新五月 03, 2014     # 依赖环境 yum install -y php-mbstring mysql-deve ...

  7. [转自itilxf论坛]iTop百问百答

    iTop是什么,和其他itsm软件相比有什么优势?iTop,是一个开源web应用程序,用于IT环境的日常运营.它基于ITIL最佳实践,而又不拘泥于任何具体流程. 优势: 1. 开源,扩展性强容易开发. ...

  8. 编译升级php

    http://www.linux-centos.com/2014/11/16/%E7%BC%96%E8%AF%91%E5%8D%87%E7%BA%A7%E4%BB%8Ephp5-2-17%E5%88% ...

  9. Drupal commerce 性能优化

    从开始的时候打开一个页面需要超过9秒的时间到现在可以在3秒内打开,给自己带来了很多欣慰. 开始的时候是认为server性能不足,所以讲aliyun服务器从1核升级到了4核,但是发现升级之后和升级之前是 ...

随机推荐

  1. 使用memcache 心得和注意事项

    内存分配机制:首先要说明的是Memcached支持最大的存储对象为1M.它的内存分配比较特殊,但是这样的分配方式其实也是对于性能考虑的,简单的分配机制可以更容易回收再分配,节省对于CPU的使用.这里用 ...

  2. php 微信接口API之长链接转短链接代码示例

    <?php header("Content-Type: text/html; charset=utf-8"); $longurl; if(isset($_POST['long ...

  3. Mysql ERROR 145 (HY000)

    问题:今天Mysql数据库异常关闭,起来之后感觉可以了. 但是运行业务数据的时间就类似如下的错误 ERROR 145 (HY000) at line 34: Table './database_nam ...

  4. JProfiler远程监控 -转

    1. 服务端安装JProfiler(与客户端版本一致) 2. 客户端配置连接: A).session——integration wizards——New remote integration B).选 ...

  5. vue中的懒加载和按需加载

    懒加载 (1)定义:懒加载也叫延迟加载,即在需要的时候进行加载,随用随载. (2)异步加载的三种表示方法: 1. resolve => require([URL], resolve),支持性好 ...

  6. codeforces C. Pearls in a Row map的应用

    C. Pearls in a Row time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  7. wpf和winform的那点区别

    一提起winform和wpf有啥不同,可能大部分人都会想到wpf拥有漂亮的界面.wpf中也可以使用winform,大部分情况下,都没有任何问题,极少的情况下,可能会出现问题. 我们就来看一下: voi ...

  8. LeetCode Sum of Square Numbers

    原题链接在这里:https://leetcode.com/problems/sum-of-square-numbers/description/ 题目: Given a non-negative in ...

  9. 「长乐集训 2017 Day1」区间 线段树

    题目 对于两个区间\((a,b),(c,d)\),若\(c < a < d\)或\(c < b < d\)则可以从\((a,b)\)走到\((c,d)\)去,现在有以下两种操作 ...

  10. openfl更新2.0后,android输入法又不能输中文了

    今天手贱更新了一下openfl,fd里面又各种报错.最伤心的是,之前修改MainView.java输入中文的方法现在居然失效了.还好这段时间研究c2dx,总算是能读能懂修改的那段代码,捣鼓了一下午,算 ...