PHP缓存加速

添加系统环境变量
echo 'export LC_ALL=C'>> /etc/profile
source /etc/profile
解决后面perl程序插件的编译问题。

编译安装php扩展模块
1.安装eaccelerator缓存加速模块
eAccelerator是一个自由开放源代码的php加速、优化和动态内容缓存的扩展模块。
它可以提升php程序的缓存性能,降低php程序在解析时对服务器的性能开销。eaccelerator还可以对
php进行优化,加快其执行效率,使php程序代码执行效率提高1-10倍
下载 wget https://github.com/downloads/eaccelerator/eaccelerator/eaccelerator-0.9.6.1.tar.bz2
[root@lamp01 tools]# tar jxf eaccelerator-0.9.6.1.tar.bz2
cd eaccelerator-0.9.6.1
[root@lamp01 eaccelerator-0.9.6.1]# /usr/local/php/bin/phpize
[root@lamp01 eaccelerator-0.9.6.1]# ./configure --enable-eaccelerator=shared \
--with-php-config=/usr/local/php/bin/php-config
mak make install
2.安装memcache缓存扩展模块
Memcache是一个高性能的分布式的内存对象缓存系统。
简单来说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。
Memcache分为服务端和客户端两部分,本文就是客户端插件在php服务中的安装

wget http://pecl.php.net/get/memcache-2.2.5.tgz

/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make&&make install

3.安装PDO_MYSQL扩展模块
PDO扩展为php访问数据库定义了一个轻量级的、一致性的接口,它提供了一个数据访问抽象层,这样,无论使用
什么数据库,都可以通过一致的函数执行查询和获取数据。
wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz
tar zxf PDO_MYSQL-1.0.2.tgz
cd PDO_MYSQL-1.0.2
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql
make&&make install
cd ../
4.安装图像处理程序及imagick扩展模块
1.安装ImageMagisk图像软件
ImageMagisk是一套功能强大、稳定且免费的工具集和开发包,可以用来读写和处理超过89中基本格式的
图片文件。利用ImageMagisk,你可以根据web应用程序的需要动态生成图片,还可以对一个或一组图片进行
操作,如改变大小,旋转等

wget http://www.imagemagick.org/download/ImageMagick.tar.gz
tar zxf ImageMagick-i686-pc-cygwin.tar.gz
tar zxf ImageMagick.tar.gz
cd ImageMagick-7.0.7-14/
./configure
make
make install
cd ..
2.图像软件安装后接着安装imagick php扩展插件
imagick插件需要imagemagick软件的支持。

wget http://pecl.php.net/get/imagick-3.4.1.tgz
tar zxf imagick-3.4.1.tgz
cd imagick-3.4.1

/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
ls -l /usr/local/php/lib/php/extensions/no-debug-zts-20090626/
cd ..
5.安装zend缓存及加速扩展模块
zend optimizer使用优化代码的方法来提高php v5.1-v5.2应用程序的执行速度。实现的原理是对那些在被
最终执行前由运行编译器(Run-Time Compiler)产生的代码进行优化。

https://www.zend.com

本次实例PHP用的是5.3版本,暂时不安装zend
6.安装xcache缓存加速扩展模块

xcache的2个特点
将php代码进行编译(类似于.NET和JAVA的编译,内部机制不同),这样可以不用重复读取php文件,
加快整个程序的运行效率
可以缓存数据到内存中
wget http://xcache.lighttpd.net/pub/Releases/3.0.4/xcache-3.0.4.tar.gz
tar zxf xcache-3.0.4.tar.gz
cd xcache-3.0.4
/usr/local/php/bin/phpize
./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config
make
make install

ls -l /usr/local/php/lib/php/extensions/no-debug-zts-20090626/

检查安装的php扩展模块
[root@lamp01 xcache-3.0.4]# ls -l /usr/local/php/lib/php/extensions/no-debug-zts-20090626/
total 2516
-rwxr-xr-x 1 root root 396125 Dec 16 15:01 eaccelerator.so
-rwxr-xr-x 1 root root 1216436 Dec 16 17:49 imagick.so
-rwxr-xr-x 1 root root 237730 Dec 16 15:29 memcache.so
-rwxr-xr-x 1 root root 153788 Dec 16 15:47 pdo_mysql.so
-rwxr-xr-x 1 root root 563212 Dec 16 18:14 xcache.so

7.php配置扩展模块

修改php配置文件/usr/local/php/lib/php.ini
查找; extension_dir = "./",将./ 修改为/usr/local/php/lib/php/extensions/no-debug-zts-20090626/

在结尾添加
extension = memcache.so
extension = pdo_mysql.so
extension = imagick.so
可以使用以下方式加入
cat >>/usr/local/php/lib/php.ini<<EOF
extension = memcache.so
extension = pdo_mysql.so
extension = imagick.so
EOF
php.ini中加注释的话,用分号

8.配置eAccelerator插件
1.配置缓存目录daemon为apache用户
[root@lamp01 tmp]# egrep "User|Group" /usr/local/apache2/conf/httpd.conf

User/Group: The name (or #number) of the user/group to run httpd as.

User daemon
Group daemon
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio

User home directories

mkdir -p /tmp/eaccelerator
chown -R daemon.daemon /tmp/eaccelerator
2,配置eaccelerator参数

本段配置要放在zend内容配置前面
cat >>/usr/local/php/lib/php.ini<<EOF
[eaccelerator]
extension=eaccelerator.so
eaccelerator.shm_size="64"
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"
EOF

[root@lamp01 php]# bin/php -v
PHP 5.3.10 (cli) (built: Dec 10 2017 17:35:52)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
with eAccelerator v0.9.6.1, Copyright (c) 2004-2010 eAccelerator, by eAccelerator

查看缓存目录。
[root@lamp01 tmp]# cd eaccelerator/
[root@lamp01 eaccelerator]# ll
total 64
drwxrwxrwx 18 root root 4096 Dec 16 19:57 0
drwxrwxrwx 18 root root 4096 Dec 16 19:57 1
drwxrwxrwx 18 root root 4096 Dec 16 19:57 2
drwxrwxrwx 18 root root 4096 Dec 16 19:57 3
drwxrwxrwx 18 root root 4096 Dec 16 19:57 4
drwxrwxrwx 18 root root 4096 Dec 16 19:57 5
drwxrwxrwx 18 root root 4096 Dec 16 19:57 6
drwxrwxrwx 18 root root 4096 Dec 16 19:57 7
drwxrwxrwx 18 root root 4096 Dec 16 19:57 8
drwxrwxrwx 18 root root 4096 Dec 16 19:57 9
drwxrwxrwx 18 root root 4096 Dec 16 19:57 a
drwxrwxrwx 18 root root 4096 Dec 16 19:57 b
drwxrwxrwx 18 root root 4096 Dec 16 19:57 c
drwxrwxrwx 18 root root 4096 Dec 16 19:57 d
drwxrwxrwx 18 root root 4096 Dec 16 19:57 e
drwxrwxrwx 18 root root 4096 Dec 16 19:57 f

测试phpinfo
上次配置的是基于域名访问
[root@lamp01 tuwei]# cat phpinfo.php
<?php
phpinfo();
?>

[root@lamp01 tuwei]# pwd
/var/tuwei
重启apache
/usr/local/apache2/bin/apachectl graceful
访问phpinfo.php页面
然后查看缓存目录
[root@lamp01 eaccelerator]# tree
。。。。。。
├── 4
│?? ├── 0
│?? ├── 1
│?? ├── 2

│?? ├── 0
│?? ├── 1
│?? ├── 2
│?? ├── 3
│?? │?? └── eaccelerator-3502.206145
│?? ├── 4
│?? ├── 5

eaccelerator-3502.206145就是cache的内容

10.9.配置xcache插件

一般认为,xcache和eaccelerator功能相近,安装一个即可。
配置xcache参数
php.ini中加入

echo ";xcache config">>/usr/local/php/lib/php.ini

cat /tuwei/tools/xcache-3.0.4/xcache.ini >>/usr/local/php/lib/php.ini

修改php.ini配置文件
zend_extension=...
zend_extension_ts=... 这两行注释
;extension=xcache.so 取消注释
调整一下参数改后为
xcache.size = 128M
xcache.count = 2
xcache.ttl = 86400
xcache.gc_interval = 3600
xcache.var_size = 0

root@lamp01 php]# bin/php -v
PHP Warning: Cannot load module 'XCache' because conflicting module 'eAccelerator' is already loaded in Unknown on line 0
PHP 5.3.10 (cli) (built: Dec 10 2017 17:35:52)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
with eAccelerator v0.9.6.1, Copyright (c) 2004-2010 eAccelerator, by eAccelerator
将eacclerator配置放到xcache后面试下
[root@lamp01 lib]# ../bin/php -v
PHP 5.3.10 (cli) (built: Dec 10 2017 17:35:52)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
with eAccelerator v0.9.6.1, Copyright (c) 2004-2010 eAccelerator, by eAccelerator
with XCache v3.0.4, Copyright (c) 2005-2013, by mOo
with XCache Cacher v3.0.4, Copyright (c) 2005-2013, by mOo
Segmentation fault (core dumped)

转载于:https://blog.51cto.com/tuwei/2053884

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值