CentOS 6系统编译安装PHP的APC拓展教程

下载地址:http://pecl.php.net/package/APC。这个拓展更新速度比较慢,建议安装最新版本,因为最新版本已解决某些未知BUG。

安装APC

获取APC:

# cd /usr/local/src &&
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/php5/bin/phpize &&
./configure --enable-apc --enable-apc-mmap --with-php-config=/usr/local/php5/bin/php-config &&
make && make install

配置php.ini,加入以下内容:

extension = "apc.so"
apc.rfc1867 = On
apc.cache_by_default = off
apc.enabled=1
apc.shm_segments=1
apc.shm_size=128
apc.ttl=7200
apc.user_ttl=7200
apc.num_files_hint=1024
apc.mmap_file_mask=/tmp/apc.XXXXXX
apc.enable_cli=off
apc.max_file_size = 5M
apc.include_once_override = off
apc.stat = on
重启Apache,查看phpinfo:
PHP-APC

 
拓展阅读:
1、官方文档:http://cn2.php.net/manual/zh/book.apc.php
2、http://www.neatstudio.com/show-2061-1.shtml

; alternative php cache 用于缓存和优化php中间代码 
 
apc.cache_by_default = on 
;sys 
; 是否默认对所有文件启用缓冲。 
; 若设为off并与以加号开头的apc.filters指令一起用,则文件仅在匹配过滤器时才被缓存。 
 
apc.enable_cli = off 
;sys 
; 是否为cli版本启用apc功能,仅用于测试和调试目的才打开此指令。 
 
apc.enabled = on 
; 是否启用apc,如果apc被静态编译进php又想禁用它,这是唯一的办法。 
 
apc.file_update_protection = 2 
;sys 
; 当你在一个运行中的服务器上修改文件时,你应当执行原子操作。 
; 也就是先写进一个临时文件,然后将该文件重命名(mv)到最终的名字。 
; 文本编辑器以及 cp, tar 等程序却并不是这样操作的,从而导致有可能缓冲了残缺的文件。 
; 默认值 2 表示在访问文件时如果发现修改时间距离访问时间小于 2 秒则不做缓冲。 
; 那个不幸的访问者可能得到残缺的内容,但是这种坏影响却不会通过缓存扩大化。 
; 如果你能确保所有的更新操作都是原子操作,那么可以用 0 关闭此特性。 
; 如果你的系统由于大量的io操作导致更新缓慢,你就需要增大此值。 
 
apc.filters = 
;sys 
; 一个以逗号分隔的posix扩展正则表达式列表。 
; 如果源文件名与任意一个模式匹配,则该文件不被缓存。 
; 注意,用来匹配的文件名是传递给include/require的文件名,而不是绝对路径。 
; 如果正则表达式的第一个字符是"+"则意味着任何匹配表达式的文件会被缓存, 
; 如果第一个字符是"-"则任何匹配项都不会被缓存。"-"是默认值,可以省略掉。 
 
apc.ttl = 0 
;sys 
; 缓存条目在缓冲区中允许逗留的秒数。0 表示永不超时。建议值为7200~36000。 
; 设为 0 意味着缓冲区有可能被旧的缓存条目填满,从而导致无法缓存新条目。 
 
apc.user_ttl = 0 
;sys 
; 类似于apc.ttl,只是针对每个用户而言,建议值为7200~36000。 
; 设为 0 意味着缓冲区有可能被旧的缓存条目填满,从而导致无法缓存新条目。 
 
apc.gc_ttl = 3600 
;sys 
; 缓存条目在垃圾回收表中能够存在的秒数。 
; 此值提供了一个安全措施,即使一个服务器进程在执行缓存的源文件时崩溃, 
; 而且该源文件已经被修改,为旧版本分配的内存也不会被回收,直到达到此ttl值为止。 
; 设为零将禁用此特性。 
 
apc.include_once_override = off 
;sys 
; 关于该指令目前尚无说明文档,参见:http://pecl.php.net/bugs/bug.php?id=8754 
; 请保持为off,否则可能导致意想不到的结果。 
 
apc.max_file_size = 1m 
;sys 
; 禁止大于此尺寸的文件被缓存。 
 
apc.mmap_file_mask = 
;sys 
; 如果使用–enable-mmap(默认启用)为apc编译了mmap支持, 
; 这里的值就是传递给mmap模块的mktemp风格的文件掩码(建议值为"/tmp/apc.xxxxxx")。 
; 该掩码用于决定内存映射区域是否要被file-backed或者shared memory backed。 
; 对于直接的file-backed内存映射,要设置成"/tmp/apc.xxxxxx"的样子(恰好6个x)。 
; 要使用posix风格的shm_open/mmap就需要设置成"/apc.shm.xxxxxx"的样子。 
; 你还可以设为"/dev/zero"来为匿名映射的内存使用内核的"/dev/zero"接口。 
; 不定义此指令则表示强制使用匿名映射。 
 
apc.num_files_hint = 1000 
;sys 
; web服务器上可能被包含或被请求的不同源文件的大致数量(建议值为1024~4096)。 
; 如果你不能确定,则设为 0 ;此设定主要用于拥有数千个源文件的站点。 
 
apc.optimization = 0 
; 优化级别(建议值为 0 ) 。 
; 正整数值表示启用优化器,值越高则使用越激进的优化。 
; 更高的值可能有非常有限的速度提升,但目前尚在试验中。 
 
apc.report_autofilter = off 
;sys 
; 是否记录所有由于early/late binding原因而自动未被缓存的脚本。 
 
apc.shm_segments = 1 
;sys 
; 为编译器缓冲区分配的共享内存块数量(建议值为1)。 
; 如果apc耗尽了共享内存,并且已将apc.shm_size指令设为系统允许的最大值, 
; 你可以尝试增大此值。 
 
apc.shm_size = 30 
;sys 
; 每个共享内存块的大小(以mb为单位,建议值为128~256)。 
; 有些系统(包括大多数bsd变种)默认的共享内存块大小非常少。 
 
apc.slam_defense = 0 
;sys(反对使用该指令,建议该用apc.write_lock指令) 
; 在非常繁忙的服务器上,无论是启动服务还是修改文件, 
; 都可能由于多个进程企图同时缓存一个文件而导致竞争条件。 
; 这个指令用于设置进程在处理未被缓存的文件时跳过缓存步骤的百分率。 
; 比如设为75表示在遇到未被缓存的文件时有75%的概率不进行缓存,从而减少碰撞几率。 
; 鼓励设为 0 来禁用这个特性。 
 
apc.stat = on 
;sys 
; 是否启用脚本更新检查。 
; 改变这个指令值要非常小心。 
; 默认值 on 表示apc在每次请求脚本时都检查脚本是否被更新, 
; 如果被更新则自动重新编译和缓存编译后的内容。但这样做对性能有不利影响。 
; 如果设为 off 则表示不进行检查,从而使性能得到大幅提高。 
; 但是为了使更新的内容生效,你必须重启web服务器。 
; 这个指令对于include/require的文件同样有效。但是需要注意的是, 
; 如果你使用的是相对路径,apc就必须在每一次include/require时都进行检查以定位文件。 
; 而使用绝对路径则可以跳过检查,所以鼓励你使用绝对路径进行include/require操作。 
 
apc.user_entries_hint = 100 
;sys 
; 类似于num_files_hint指令,只是针对每个不同用户而言。 
; 如果你不能确定,则设为 0 。 
 
apc.write_lock = on 
;sys 
; 是否启用写入锁。 
; 在非常繁忙的服务器上,无论是启动服务还是修改文件, 
; 都可能由于多个进程企图同时缓存一个文件而导致竞争条件。 
; 启用该指令可以避免竞争条件的出现。 
 
apc.rfc1867 = off 
;sys 
; 打开该指令后,对于每个恰好在file字段之前含有apc_upload_progress字段的上传文件, 
; apc都将自动创建一个upload_的用户缓存条目(就是apc_upload_progress字段值)。

时间: 2024-11-10 10:55:01

CentOS 6系统编译安装PHP的APC拓展教程的相关文章

centos 6系统编译安装mysql-5.6.22步骤详解

[mysql是什么] 简短 的说明,那就是一个数据库软件啦. [下载] 在mysql官网上下载,这里我选择的社区版本source code,下载命令: wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.22.tar.gz [解决包的依赖性] yum -y install make gcc-c++ cmake bison-devel  ncurses-devel 如果缺少包就会报如下错: [新建mysql用户] /usr/sbi

CentOS 7.0编译安装lnmp教程(Nginx1.6.0+MySQL5.6.19+PHP5.5.14)_Linux

准备篇: CentOS 7.0系统安装配置图解教程 http://www.jb51.net/os/188487.html 一.配置防火墙,开启80端口.3306端口 CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall开机启动 2.安装iptab

在Linux系统中安装Go语言的详细教程

  这篇文章主要介绍了在Linux系统中安装Go语言的详细教程,由于国内很多人对谷歌的盲目追捧,导致Go语言在国内的人气远超国外...需要的朋友可以参考下 Go (也叫 "golang")是一款由Google最初开发的编程语言.它自诞生就有几个设计原则:简单性.安全性和速度.Go语言发行版拥有各种调试.测试.调优和代码审查工具.如今Go语言和它的工具链在大多数Linux发行版的基础仓库都可用,用默认的包管理器就可以安装. 在Ubuntu.Debian 或者 Linux Mint上安装G

Win下安装PHP的APC拓展

APC简介 APC(Alternative PHP Cache)是一个PHP缓存.它在内存中存储PHP页面并且减少了硬盘的I/O.这对于性能的提升十分明显.你甚至可以在CPU使用率下降50%的情况下提升系统50%的性能. 这篇教程我们会告诉大家如何在windows上安装APC.我已经在windows server 2003上成功测试.当然,在你也可以使用windows xp做为测试服务器. windows下安装PHP的APC拓展 注意:你不能在一天服务器上同时安装APC和Zend Optimis

Win下如何安装PHP的APC拓展_php技巧

APC简介APC(Alternative PHP Cache)是一个PHP缓存.它在内存中存储PHP页面并且减少了硬盘的I/O.这对于性能的提升十分明显.你甚至可以在CPU使用率下降50%的情况下提升系统50%的性能. windows下安装PHP的APC拓展注意:你不能在一天服务器上同时安装APC和Zend Optimiser,二者只能选其一.按照下面的方法安装PHP的APC拓展.下载正确的版本我是用的PHP版本是5.3.10注意:确定你所下载的APC拓展版本对应了你的PHP版本.设置php.i

centos系统编译安装nginx+php环境另加独立mysql教程

  前端(nginx+php)ip:192.168.10.8 后端(独立mysql)ip:192.168.10.5 软件版本:libiconv-1.14.tar.gz mysql-5.1.63.tar.gz php-5.2.17.tar.gz php-5.2.17-fpm-0.5.14.diff.gz php-5.2.17-max-input-vars.patch 1.先在后端安装mysql 在192.168.10.5上只安装mysql.方法可以去看centos编译安装nginx+php-fpm

CentOS 6.2编译安装Nginx1.0.14+MySQL5.5.22+PHP5.3.10步骤分享

说明: 操作系统:CentOS 6.2 32位 准备篇: 一.配置好IP.DNS .网关,确保使用远程连接工具能够连接服务器 二.配置防火墙,开启80端口.3306端口 vi /etc/sysconfig/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT(允许80端口通过防火墙) -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j

CentOS 5.10编译安装Nginx1.4.4+MySQL5.5.35+PHP5.3.28的教程

说明: 操作系统:CentOS 5.10 64位 准备篇: 一.配置好IP.DNS .网关,确保使用远程连接工具能够连接服务器,服务器时间设置正确   二.配置防火墙,开启80端口.3306端口 vi /etc/sysconfig/iptables  #编辑 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT  #允许80端口通过防火墙 -A RH-Firewall-1-INPUT -m s

CentOS 6.3编译安装LAMP环境笔记_Linux

最近抽空在虚拟机上测试成功了LAMP各个最新版本的整合编译安装,算是把之前的博文整合精简,以下内容均在CENTOS6.3(安装minimal desktop和默认开发包)下测试安装成功,并做了相应优化配置,如有遗漏,还请留言指教.   LINUX操作系统:centOS6.3 64bit(安装了系统默认开发包) APACHE:httpd-2.4.4 MYSQL:mysql-5.6.10 PHP:php-5.4.13 注:推荐安装centos6.3系统时,在系统安装向导中.将默认开发包勾上,避免后期