php缓存服务加速

操作码介绍与缓存原理

1.当客户端请求一个php程序时,服务器的php引擎会解析到该php程序。将其编译为特定的操作码文

件,该文件是执行php程序以一种二进制的表示形式,默认情况会被php引擎执行后丢弃,而操作码

缓存是将执行后的程序保存下来,放到共享内存中,以便下次调用php的时候重新利用,避免了相

同代码的重复编译,节省了编译次数,减轻服务器负载,与cup和内存的开销。

php缓存加速软件的介绍

1.为了提高php引擎的高并发访问,以及执行速度,产生了php缓存加速软件,原理就是利用操作码

缓存,在有指定的php请求访问时,不需要在次进行编译,直接调用php操作码的缓存文件,提高

php动态处理的请求。

LAMP环境下php缓存加速器的原理

在lamp环境下Apache服务是使用libphp5.0响应处理php程序请求:

1.Apache接收到客户的php请求,根据规则进行过滤

2.Apache将php请求传递给php处理模块libphp5.0

3.php引擎定位磁盘上的php文件,并加载到内存中进行解析

4.php处理模块将php源代码编译成opcode

5.执行完之后进行缓存起来

6.当apache在次接受到请求后会直接调用缓存下来的opcode文件。

LNMP环境php缓存加速器原理

在lnmp环境中,php引擎不在使用libphp5.0 而是启用了独立的fastcgi即php-fpm进程,用来监听

nginx的php请求:

1.nginx接受客户端的php请求

2.nginx根据扩展名的过滤规则将php程序的请求传递给解析的php fastcgi进程

3.php fpm进程调用php解析器读取站点磁盘上的php文件,并加载到内存中

4.php解析器将php程序编译成opcode文件,并进行缓存下来。

5.fpm引擎执行完成后将数据饭后给nginx,在返回到客户端。

6.当nginx接受到新的php请求后php-fpm会直接读取缓存中的opcode并执行,返回数据。

php缓存加速软件:

xcache eAccelerator apc zendopcache (php官方缓存加速软件)

不管是apache还是nginx,最后都是通过php进行动态程序解析的,不管是apache的libphp5.0 还是nginx的php-fpm,最终在php引擎中优化效果是一样的,都是基于php服务(php.ini)

 

 

php缓存加速软件xcache部署

下载xcache源码包文件

1.wget http://xcache.lighttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.bz2

tar -xf xcache-3.2.0.tar.bz2

cd xcache-3.2.0

2.进行编译安装

phpize生成配置文件。

./configure --enable-xcache --with-php-config=/usr/bin/php-config

enable:启用xcache服务 --with-php-config :php-config文件路径,

可以通过使用 whereis php-config 查找。

3.make && make install

安装完成会生成xcache.so 文件 安装完成

 

配置管理Xcache

 

1、修改php配置文件

 

# vi /etc/php.ini

 

在底部添加如下内容

 

[xcache-common]

extension = /usr/lib64/php/modules/xcache.so 加载xcache模块,并指定路径

 

[xcache.admin]

xcache.admin.enable_auth = On 激活管理员用户和密码

xcache.admin.user = "admin"

xcache.admin.pass = "e10adc3949ba59abbe56e057f20f883e"

 

[xcache] 开始设置xcache缓存参数

xcache.shm_scheme = "mmap" 设置xcache如何从系统中分配内存

xcache.mmap_path = "/tmp/xcache" 缓存目录

xcache.readonly_protection = Off 启用会降低性能

xcache.size = 64M 0为禁止缓存,非0则启用

xcache.count = 1 切割成多少块,根据cpu数量

xcache.slots = 8k hash值参考值

xcache.ttl = 3600

xcache.gc_interval = 300

xcache.test = Off

xcache.readonly_protection = On

xcache.coredump_directory =""

xcache.cacher = On

xcache.stat = On

xcache.optimizer =Off

xcache.var_size = 4M 下面为变量缓存,非opcode缓存

xcache.var_count = 1

xcache.var_slots = 8k

xcache.var_gc_interval = 300

xcache.var_ttl = 0

xcache.var_maxttl = 0

[xcache.coverager]

xcache.coverager =On

xcache.coveragedump_directory ="" 是否把数据保存到指定目录

备注:xcache.count为cpu的内核数,通过cat /proc/cpuinfo查看

 

2、生成Xcache缓存目录

 

# touch /tmp/xcache

# chmod 777 /tmp/xcache

 

3、生成Xcache管理员的秘密(MD5密文)

# echo -n "123456" | md5sum

 

e10adc3949ba59abbe56e057f20f883e

 

然后将上述生成的MD5密文粘贴到php.ini文件中xcache.admin.pass = ""选项,xcache.admin.pass= "e10adc3949ba59abbe56e057f20f883e"

 

重启服务

/etc/init.d/php-fpm restart

 [root@localhost html]# php -v

PHP: syntax error, unexpected '(' in /etc/php.ini on line 1846

PHP 5.6.35 (cli) (built: Mar 29 2018 07:37:47)

Copyright (c) 1997-2016 The PHP Group

Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies

with XCache v3.2.0, Copyright (c) 2005-2014, by mOo

with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies

with Xdebug v2.5.5, Copyright (c) 2002-2017, by Derick Rethans

with XCache Cacher v3.2.0, Copyright (c) 2005-2014, by mOo

 

在网站根目录编写phpinfo文件。查看xcache服务

 

php缓存服务加速_第1张图片

页面管理查看xcache

1.将xcache源码中的 htdocs 目录放到网页根目录下

#cd htdocs/

#cp -r * /titi/www/html/xadmin

#重新启动php-fpm

#网页访问 http://192.168.1.251/xadmin/index.php

# 出现提示的认证的用户和密码。然后输入配置文件中所设置的用户名,和密码

#注意设置php.ini 配置文件中的时区。和访问用户名密码

php缓存服务加速_第2张图片

你可能感兴趣的:(nginx)