windows下Magento开发APC加速扩展安装步骤

Magento开发时,调试是个大问题,因为没有经过优化的magento运行起来实在是太慢了,apcphp运行环境下常用的速度优化方式。不过用到的资源往往不是很好下载。

下面将安装步骤以及所需的资源链接放在下面。

我使用 zend server 5.5CE的集成开发环境,关于 zend server的安装请参见

Zend Server Magento开发环境搭建

下面先说一下apc的工作原理

由于PHP是个解释型语言,执行的时候先得把程序读进来,(进行基本的差错,)然后“解释”成机器可以跑的程序。解释就会生成Opcode,如果可 以把这个Opcode缓存起来,下次就能避免重新解释了。想想一下很多大型的系统,一个页面会包含很多文件,所以把这些文件的opcode存储起来,效果 有点像“片段缓存”。

windows下安装apc,首先要搞清楚自己的php版本,然后下载相应的 php_apc.dll,这个看一下phpinfo页面就可以了,如果不知道phpinfo的话,你现在也没必要安装apc了,你还有很多事情要做,呵呵。

确认自己的php版本之后,

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

中去下载相应版本的 dll文件,可能不是很好确定,如果不能确定,就多下载几个,到时候多试几次就可以了,总有一款适合你的,呵呵,我用的是,zend server ce 5.5, php版本为5.3.8,下载好之后,将php_apc.dll拷贝到本地php的ext文件夹中,不能确定的参见phpinfo.

我的在 D:ZendZendServerlibphpext 说实话,zend server 的这个位置还真是难找。。。。

php_apc.dll拷贝到本地php的ext文件夹中后,找到自己环境中的 php.ini,进行修改,php.ini的位置,参见phpinfo

使用editplus编辑  php.ini, 我的在D:ZendZendServeretc下

在php.ini的末尾添加如下的字段

[apc]
extension=php_apc.dll
apc.enabled=1
apc.shm_segments=1
apc.shm_size=48
apc.ttl=7200
apc.user_ttl=7200
apc.num_files_hint=1024
apc.mmap_file_mask=D:ZendZendServertmpapc
apc.enable_cli=1

其中apc.shm_size就是给APC开的缓存大小,单位是M。我之前开了16M,有点小,就改成了48M。

解释一下这些参数,以及没有用到的一些apc参数

APC模块的参数配置

  1. Name Default Changeable Changelog
  2. apc.enabled 1 PHP_INI_ALL
  3. apc.shm_segments 1 PHP_INI_SYSTEM
  4. apc.shm_size 30 PHP_INI_SYSTEM
  5. apc.optimization 0 PHP_INI_ALL
  6. apc.num_files_hint 1000 PHP_INI_SYSTEM
  7. apc.ttl 0 PHP_INI_SYSTEM
  8. apc.gc_ttl 3600 PHP_INI_SYSTEM
  9. apc.cache_by_default On PHP_INI_SYSTEM
  10. apc.filters ”" PHP_INI_SYSTEM
  11. apc.mmap_file_mask ”" PHP_INI_SYSTEM
  12. apc.slam_defense 0 PHP_INI_SYSTEM
  13. apc.file_update_protection 2 PHP_INI_SYSTEM
  14. apc.enable_cli 0 PHP_INI_SYSTEM > APC 3.0.6

apc.enabled 布尔型 
apc.enabled 可以被设成 0 来禁用 APC。这主要是有用的,当 APC 被静态编译入 PHP 时,因为没有其它方法来禁用它(当编译为 DSO 的时候,可以将 php.ini 中的 extension 行注释掉)。

apc.shm_segments 整型 
对编译缓存分配共享内存块的数量。如果APC用光了共享内存,而且你已经设置 apc.shm_size为系统允许的最大值的情况下,你可以试着去提高这个参数的值。

apc.shm_size 整型 
每个共享内存块的大小是以MB为单位的。在默认情况下,一些系统(包括大多数BSD变种系统)的共享内存块的大小限制的很低。

apc.optimization 整型
优化等级。设为0则禁用优化,越高的值使用越强有力的优化。期待有适度的速度上的改进。这个还是实验性质的。

apc.num_files_hint 整型
对在你的Web服务器上被包含和请求的不同的源文件的数量的提示。如果你无法确定,设置为0或者省略;这个设置主要可能用于有成千的源文件的站点。

apc.ttl 整型
当一个缓存条目在缓存区的位置被另一个条目需要时,我们需要考虑的是这个缓存条目在缓存区的位置被允许空闲的秒数。将这个参数设置为0意味着你的缓存可能 充满不新鲜的条目,同时导致新的条目无法被缓存。

apc.gc_ttl 整型
缓存条目在垃圾收集列表中存活的秒数。这个值提供了出错保护在执行一个缓存源文件,而同时服务器进程死了的事件中。如果那个源文件被修改,内存分配给旧版 本的缓存条目将不会被回收,直到这个参数设定的TTL值到的时候。设置为0就是禁止这个特性。

apc.cache_by_default 布尔型
默认为On,但可以被设置为Off并和以加号开头的apc.filters配合使用,文件仅仅在匹配过滤器时才被缓存。

apc.filters 字符串
一个以逗号分割的POSIX扩展正则表达式的列表。如果任何模式匹配源文件名,这个文件将不会被缓存。注意用来匹配的文件名是传递给 include/require 的文件名,而不是绝对路径。如果正则表达式的第一个字符是 + ,则这个表达式就意味着任何匹配表达式的文件将会被缓存,如果第一个字符是 – 则任何匹配都不会被缓存。 – 是默认值,所以可以被省略。

apc.mmap_file_mask 字符串
If compiled with MMAP support by using –enable-mmap this is the mktemp-style file_mask to pass to the mmap module for determing whether your mmap’ed memory region is going to be file-backed or shared memory backed. For straight file-backed mmap, set it to something like/tmp/apc.XXXXXX (exactly 6 Xs). To use POSIX-style shm_open/mmap put a .shm somewhere in your mask. e.g. /apc.shm.XXXXXX You can also set it to /dev/zero to use your kernel’s/dev/zero interface to anonymous mmap’ed memory. Leaving it undefined will force an anonymous mmap.

apc.slam_defense 整型
在非常繁忙的服务器上,无论你启动服务还是修改文件,你都会导致一种多进程都试图在同一个时间缓存同一个文件的竞争。这个选项设置了进程跳过试图去缓存一 个未被缓存的文件的百分比。或者可以把这个想象成一个单独进程跳过缓存的机率。例如,设置apc.slam_defense为75就意味着进程有75%的 机率不去缓存未被缓存的文件。所以,设置的越高,越能减少缓存的碰撞机率。设置为0则禁用这个特性。

apc.file_update_protection 整型
当你在一个运行着的服务器上修改文件时,你应该执行原子操作。也就是,先写一个临时文件,当写完后再重命名(mv)这个文件到它的最终位置。许多文本编辑 器,cp,tar和其他一些类似程序都不是这样操作的。这就意味着有机会去访问和(缓存)文件,当这个文件还在被写的情况下。 apc.file_update_protection的设置使得缓存标记新文件的延迟。默认值是2,意味着如果发现文件的修改时间距离访问时间不到2 秒,文件将不会被缓存。访问写到一半的文件的不幸用户将会看到离奇的情况,但至少这种情况不是持续的。如果你确信你经常使用原子操作来更新你的文件,你可 以关闭这个保护通过设置这个参数为0。如果你的系统充满io操作,并导致更新程序花费超过2秒,你可能需要去增大这个值。

apc.enable-cli 整型
大多是为了测试和调试。为CLI版本的PHP开启动APC功能。一般来说,你将不会想到为每一个 CLI请求创建,移植和放弃APC的缓存,但对于各种测试情况,这是很容易的为了CLI版本开启APC。

保存php.ini之后重启apache,如果你有一个显示phpinfo()的网页,刷新就能看到安装完成的apc了。

就像上面的图的样子。

如果想得到apc运行的更多信息,可以去下载一个APC源代码包,里面有一个apc.php,放在web目录下就可以看到APC运行的详细情况。见下面的图:

这个要到 apc的官网的进行下载  http://pecl.php.net

pecl.php.net/get/APC-3.1.9.tgz

这样就大功告成了。

很简单了。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值