感慨下:做前端开发不少日子了,在前公司也使用过一段时间linux系统,对apache配置比较熟悉,可是对nginx配置还是不熟悉,毕竟自己是做前端开发的,大后端的事情还是比较排斥,以后多练习。前些日子vps到期了,换了空间,没配置好eAccelerator,本来想要朋友全权处理,可是他最近比较忙,只好自己处理了,现在将安装eAccelerator过程记录下,以后留用。

vps是centOS系统,php为nginx+fastcgi,nginx安装目录/usr/local/nginx,php安装目录/usr/local/php,开始在linux安装PHP加速器eAccelerator吧!

预编译安装eAccelerator


安装前准备

安装之前使用需要安装make和phpize,如果安装过,跳过此步骤。运行下面的命令

1
2
yum install make php5-dev
#ubuntu下用apt-get

安装eAccelerator

然后开始下载eAccelerator,配置安装编译:

1
2
3
4
5
6
7
wget http://bart.eaccelerator.net/source/0.9.6.1/eaccelerator-0.9.6.1.tar.bz2
tar xjf eaccelerator-0.9.6.1.tar.bz2
cd eaccelerator-0.9.6.1
/usr/bin/phpize
./configure -enable-eaccelerator=shared -with-php-config=/usr/bin/php-config
make
make install

这时会将eaccelerator安装到php目录中,屏幕会显示eaccelerator.so所在路径,例如:

1
Installing shared extensions:/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/

记住这个路径,在后面的配置文件里面会用到。

配置eAccelerator缓存路径

1
2
mkdir /tmp/eaccelerator
chmod 777 /tmp/eaccelerator

配置eAccelerator

安装eAccelerator之后,需要配置才可以使用哦~所以我们需要在php.ini中添加eAccelerator的配置,当然你也可以新建个配置文件,在php.ini中引入配置文件即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[eaccelerator]
zend_extension="/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so"
eaccelerator.shm_size="8"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="3600"
eaccelerator.shm_prune_period="3600"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
eaccelerator.keys = "disk_only"
eaccelerator.sessions = "disk_only"
eaccelerator.content = "disk_only"

几个重要配置说明

安装为 Zend extension 模式为上面的配置,如果你使用了thread safe模式安装的PHP,你必须使用 “zend_extension_ts” 替换第二行的 “zend_extension”,安装为 PHP extension 模式为“extension”。

  • cache_dir:缓存的文件夹位置,就是上一步我们mkdir的路径。
  • shm_size:缓存的大小,根据自己服务器实际情况设置
  • enable:开启或关闭 eAccelerator,”1” 为开启,”0” 为关闭。默认值为 “1”。
  • optimizer:启或关闭内部优化器,可以提升代码执行速度。”1” 为开启,”0” 为关闭。默认值为 “1”。
  • check_mtime:打开或者关闭 PHP 的文件修改检查,”1” 是指打开,”0” 是指关闭。默认值是 “1”。
  • debug:开启或关闭调试日志记录。”1” 为开启,”0” 为关闭。默认值为 “0”。会将缓存命中得记录写入日志。
  • filter:判断哪些 PHP 文件必须缓存。可以指定缓存和不缓存的文件类型(如 “.php .phtml”等)如果参数以 “!” 开头,则匹配这些参数的文件被忽略缓存。默认值为 “”,即,所有 PHP 文件都将被缓存。
  • shm_max:当使用 “ eaccelerator_put() “ 函数时禁止其向共享内存中存储过大的文件。该参数指定允许存储的最大值,单位:字节 (10240, 10K, 1M)。”0” 为不限制。默认值为 “0”。
  • shm_ttl:当 eAccelerator 获取新脚本的共享内存大小失败时,它将从共享内存中删除所有在最后 “shm_ttl” 秒内没有存取的脚本缓存。默认值为”0”,为不从共享内存中删除任何缓存文件。
  • shm_prune_period:当 eAccelerator 获取新脚本的共享内存大小失败时,他将试图从共享内存中删除早于”shm_prune_period” 秒的缓存脚本。默认值为 “0”,为不从共享内存中删除任何缓存文件。
  • shm_only:允许或禁止将已编译脚本缓存在磁盘上。该选项对 session 数据和内容缓存无效。默认值为 “0”,为使用磁盘和共享内存进行缓存。
  • compress:允许或禁止压缩内容缓存。默认值为 “1”,为允许压缩。
  • compress_level:指定内容缓存的压缩等级。默认值为 “9”,为最高等级。
1
2
3
eaccelerator.keys = "disk_only"
eaccelerator.sessions = "disk_only"
eaccelerator.content = "disk_only"

设置内容缓存的存放的地方,可以设置为:

  • shm_and_disk 在共享缓存和硬盘(默认值)
  • shm 默认存在共享内存,如果共享内存已满或大小超过 “eaccelerator.shm_max” 的值,就存到硬盘
  • shm_only 只存放在共享内存
  • disk_only 只存放在硬盘
  • none 不缓存数据

重启相关服务

1
2
3
4
# 重启nginx
/etc/init.d/nginx restart
# 重启PHP-CGI
/etc/init.d/php-fastcgi restart

查看eAccelerator运行情况

eAccelerator安装包里有一个control.php文件,把它复制到网站的任意目录,然后将路径添加到配置文件,就可以通过这个php文件可以用它查看和管理eAccelerator,这个必须指定,否则查看缓存内容的时候会出错,访问时候默认的用户名是:admin,密码:eAccelerator,用户名和密码可以在control.php中修改:

1
eaccelerator.allowed_admin_path = "/data/wsdata/wwwroot"

这样我们就可以通过访问control.php来查看eAccelerator的命中率了,还可以在线清理缓存目录,查看配置的缓存空间使用率。

linux安装PHP加速器eAccelerator的更多相关文章

  1. Linux安装PHP加速器Xcache

    XCache 是一个又快又稳定的 PHP opcoolcode 缓存器. 经过良好的测试并在大流量/高负载的生产机器上稳定运行. 经过(在linux 上)测试并支持所有现行 PHP 分支的最新发布版本 ...

  2. Linux安装配置varnish web加速器

    Linux安装配置varnish web加速器       Varnish是一款高性能的开源HTTP加速器,它可以来做纯粹的代理服务器,负载均衡,但varnish最主要的功能是缓存加速,也是它最出色的 ...

  3. linux安装LNMP的资源

    wget http://nginx.org/download/nginx-0.7.69.tar.gz wget http://museum.php.net/php5/php-5.2.10.tar.gz ...

  4. 搜狗输入法linux安装 以及 12个依赖包下载链接分享

    搜狗输入法linux安装版,先安装各种依赖包,大概12个依赖,可能中途还需要其他依赖,可以效仿解决依赖问题.如图这12个文件要是手动点击下载,那也太笨点了,我们要用shell命令批量下载.命令如下:w ...

  5. linux安装php

    接上篇:linux安装apache 一.安装php 先安装libxml2库 [root@ctxsdhy package]# yum -y install libxml2-devel 最新地址在:htt ...

  6. linux安装oracle11g

    准备oracle安装文件 Oracle11gR2包含两个文件linux_11gR2_database_1of2.zip和linux_11gR2_database_2of2.zip,将这两个文件通过SS ...

  7. TODO:Linux安装PHP MongoDB驱动

    TODO:Linux安装PHP MongoDB驱动 PHP利于学习,使用广泛,主要适用于Web开发领域. MongoDB的主要目标是在键/值存储方式(提供了高性能和高度伸缩性)以及传统的RDBMS系统 ...

  8. Symantec Backup Exec 2010 Agent For Linux安装

    以前写过一篇文章介绍过Symantec Backup Exec 2012 Agent For Linux安装安装,今天介绍一下Symantec Backup Exec 2010 Agent For L ...

  9. Symantec Backup Exec 2012 Agent For Linux安装

    Backup Exec 2012 介绍 Backup Exec 2012 是一种为虚拟和物理环境提供保护的集成产品,能够简化备份和灾难恢复,并提供了无可匹敌的恢复功能.借助于强大的 Symantec ...

随机推荐

  1. WPF程序开机速度策略

    WPF程序开机速度慢是一个很讨厌的问题.具体分析后,可能有以下问题 1.在主线程中加载图像导致 2.初始化各种UserControl导致 3.加载类库导致

  2. leecode刷题(1)-- 删除排序数组中的重复项

    删除排序数组中的重复项 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度.不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的 ...

  3. luoguP2418 yyy loves OI IV

    https://www.luogu.org/problemnew/show/P2418 暴力 DP 做这题只有 30 分 考虑用线段树优化这个 DP 先处理一下整个房间都膜拜一个人的情况,然后将 1 ...

  4. bzoj1070【SCOI2007】修车(费用流)

    题目描述 同一时刻有N位车主带着他们的爱车来到了汽车维修中心.维修中心共有M位技术人员,不同的技术人员对不同的车进行维修所用的时间是不同的.现在需要安排这M位技术人员所维修的车及顺序,使得顾客平均等待 ...

  5. PAT1002 写出这个数 (C++实现)

    PAT乙级考试题目 1002 写出这个数 (20 分) 题目要求: 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数  ...

  6. [jvm]垃圾回收与内存分配策略

    一.垃圾回收算法 概述 JVM中,当创建的对象不再被使用的时候,此时我们认为他是无用的“垃圾”:在现代主流的商用jvm中,都是通过可达性分析来判断对象是否存活的.这个算法的基本思想是通过一系列“GCR ...

  7. Spark Programming Guide《翻译》

    转载必须注明出处:梁杰帆 在这里要先感谢原作者们!如果各位在这里发现了错误之处,请大家提出 1.Initializing Spark     Spark程序必须做的第一件事就是创建一个SparkCon ...

  8. Maven搭建Spring+SpringMVC+Mybatis+Shiro项目详解

    一. 环境搭建: 1. 开发工具:myeclipse 2014 / IDEA: 2. maven管理版本:apache-maven-3.0+: 3. jdk 1.7.0+4. Tomcat8.0 二: ...

  9. 队列 和 堆栈用python 来实现

    一.利用python列表实现堆栈和队列 堆栈: 堆栈是一个后进先出的数据结构,其工作方式就像生活中常见到的直梯,先进去的人肯定是最后出. 我们可以设置一个类,用列表来存放栈中的元素的信息,利用列表的a ...

  10. JDK原生的HttpURLConnection请求实例

    不想说啥,上代码! package com.my.https; import java.io.BufferedReader; import java.io.IOException; import ja ...