最近研究完varnish后,想了解下其他的加速方法,所以有了这篇文章.
系统:centos 5.4 32位
ip:192.168.1.253
1.安装apache.php.mysql,以及这次试验要用的组件
yum -y install httpd php mysql mysql-server php-mysql httpd-manual httpd-devel mod_ssl
mod_perl mod_auth_mysql php-gd php-xml php-mbstring php-ldap php-pear mysql-connector-odbc
mysql-devel libdbi-dbd-mysql bzip2 gcc* make libtool
说明下吧,免得大家都不知道装了些什么,这个yum安装里我把apache.php.mysql的扩展模块也一起安装进
去了,所以就不用再装autoconf、automake、m4还有php-devel了.
2.下载eaccelerator并安装eaccelerator.
先用php -v这个命令看看php的版本是多少再决定下那个eaccelerator
这里可以看到我的php版本是5.1.6的,所以我就下了eaccelerator-0.9.5.3.tar.bz2.
tar zxf eaccelerator-0.9.5.3.tar.bz2 && cd eaccelerator-0.9.5.3
export PHP_PREFIX=”/usr” 指定php的安装目录,我的是yum安装的,所以要指到/usr,如果是手动编译的话
先查看php的编译参数再决定指到那吧,查看编译参数自己百度去吧,都说完了还要你们做什么.
$PHP_PREFIX/bin/phpize 安装php-devel才有这个文件,如果没有复制我的yum参数的话就自己装下php-
devel吧.
./configure –enable-eaccelerator=shared –with-php-config=$PHP_PREFIX/bin/php-config
make && make install
3.配置eaccelerator
把/root/eaccelerator-0.9.5.3里的eaccelerator.ini复制到/etc/php.d下,当然也可以自己新建
eaccelerator.ini,这个看自己的喜好了.我是直接在/etc/php.d里新建的.
vi /etc/php.d/eaccelerator.ini
[eaccelerator]
extension=”eaccelerator.so”
eaccelerator.shm_size=”32″
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=”0″
eaccelerator.shm_prune_period=”0″
eaccelerator.shm_only=”0″
eaccelerator.compress=”1″
eaccelerator.compress_level=”9″
mkdir -p /tmp/eaccelerator
chmod 777 /tmp/eaccelerator
service httpd restart
4.最后用php -v检查下
PHP 5.1.6 (cli) (built: Apr 7 2009 08:00:04)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies
with eAccelerator v0.9.5.3, Copyright (c) 2004-2006 eAccelerator, by eAccelerator
如果出现这些信息,就可以放心,最后再用phpinfo确认下.
vi /var/www/vhosts/tt.php
<?
phpinfo();
?>
访问http://ip/tt.php
5.eaccelerator配置信息详解
extension=”eaccelerator.so” PHP扩展eaccelerator.so的路径.
eaccelerator.shm_size=”32″ eaccelerator可使用的共享内存大小(单位为MB).
eaccelerator.cache_dir=”/tmp/eaccelerator” 缓存路径,可以使用命令mkdir -p /tmp/eaccelerator
创建该目录,然后使用命令chmod 777 /tmp/eaccelerator设置该目录权限为777
eaccelerator.enable=”1″ 打开或者关闭代码优化,开启可以加快代码的执行速度。”1″指打开,”0″
指关闭。默认值为”1″.
eaccelerator.check_mtime=”1″ 当打开此项时,eaccelerator会在每次请求时检查php文件的修改时间,
看其是否被修改过,这会耗费一点时间,如果php文件被修改过,eaccelerator会重新编译缓存该php文件
.当关闭此项时,如果php文件被修改,则需要手工删除eaccelerator缓存,才能显示被修改的php文
件.”1″指打开,”0″指关闭,默认值为”1″.
eaccelerator.debug=”0″ 打开或者关闭调试记录。当打开时,eaccelerator会将对一个缓存文件的每次
请求都写进log。打开此项只对调试eaccelerator是否有BUG时有益处。”1″指打开,”0″指关闭。默认值为
“0″.
eaccelerator.filter=”" 决定哪些PHP文件应该被缓存。可以指定一个范围(比如”*.php *.phtml”),这
样被指定的文件就会被缓存。如果该范围以!开头,被指定的文件就不会被缓存。默认值为”",表示缓存
所有的PHP文件.
eaccelerator.shm_max=”0″ 一个用户使用例如eaccelerator_put之类的函数能够往共享内存中加载的最
大数据。默认值为”0″,表示不限制。(单位为字节)
eaccelerator.shm_ttl=”0″ 当没有足够的空闲共享内存去尝试缓冲一个新脚本时,将删除至少在shm_ttl
秒之前没有被访问过的文件。默认值为”0″,表示不尝试从共享内存中删除任何旧的脚本。(单位为秒)
eaccelerator.shm_prune_period=”0″ 当没有足够的空闲共享内存去尝试缓冲一个新脚本时,将删所有旧
脚本,前提是这个尝试在超过shm_prune_period秒之前被执行过。默认值为”0″,表示不尝试从共享内存
中删除任何旧的脚本。(单位为秒)
eaccelerator.shm_only=”0″ 打开或者关闭在磁盘上缓存编译过的脚本。这个参数对会话数据和内容缓存
没有效果。默认值为”0″,表示使用磁盘和共享内存来缓存.
eaccelerator.compress=”1″ 打开或者关闭缓存内容压缩。”1″指打开,”0″指关闭。默认值为”1″.
eaccelerator.compress_level=”9″ 内存压缩的级别。默认值为”9″,表示最大压缩.