十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
Php缓存和优化实战
为富平等地区用户提供了全套网页设计制作服务,及富平网站建设行业解决方案。主营业务为网站建设、成都网站建设、富平网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
缓存原理:
当用户请求一个php程序的时候,服务器的php引擎根据客户端请求解析php,并将其编译的编码为特定的操作码,默认情况下,php解析完之后会自动丢弃这个解析的操作码,而操作码缓存会将用户请求解析的源码放到共享内存里,方便下次调取,这样就大大减少了cpu的负载量
LNMP php缓存过程
1首先客户端向服务器申请php请求
2服务端收到客户端请求后,会将这个信息交给php引擎,也就是fastcgi(php-fpm)进行处理,LAMP用的apache自带的插件(libso)。
3php-fpm调用php解析器来读取站点磁盘的php文件,加载到内存中
4php解析器将php程序编译成opcode文件,然后缓存起来
5php程序将opcpde执行后,返回给nginx,然后返回客户端
6nginx再次接受客户端请求,会直接从opcode调取,这样就不用执行第4部,方便简洁
Php缓存加速器:
常见的有xcache,eAccelerator,zendOpcache,在企业中常用的还是xcache,其次是eAccelerator。
那么现在开始安装缓存加速软件
环境准备:
就按照我之前的LNMP环境搭建了,有需要的可以看看文档。
查看nginx web版本
[root@localhost ~]# /application/nginx/sbin/nginx -v
nginx version: nginx/1.6.2
Php版本
[root@localhost ~]# /application/php/bin/php -v
PHP 5.3.28 (cli) (built: Apr 16 2016 03:56:50)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2013 Zend Technologies
MySQL版本
[root@localhost ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.5.32 MySQL Community Server (GPL)
LNMP缓存提示:
不论是Apache还是nginx,最后都是通过php提供动态解析程序来进行的,不论是Apache的libphp5.so模块模式,还是nginx的fastcgi模式,都是一样的,php引擎优化都是一致的,都是基于php服务(php.ini)来进行的,两者之间无差异!
安装php缓存加速器
那么我在这里直接用xcache缓存软件了。
首先下载xcache
[root@localhost xiaohu]# wgethttp://xcache.lighttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.bz2
[root@localhost xcache-3.2.0]# ./configure --enable-xcache --with-php-config=/application/php/bin/php-config
[root@localhost xcache-3.2.0]# make
Don't forget to run 'make test'. 出现这个成功,继续install
[root@localhost xcache-3.2.0]# make install
Installing shared extensions: /application/php/lib/php/extensions/no-debug-non-zts-20090626/
查看有没有xcache.so文件有代表成功
[root@localhost xcache-3.2.0]# ls -l /application/php/lib/php/extensions/no-debug-non-zts-20090626/xcache.so
-rwxr-xr-x. 1 root root 653772 4月 16 22:14 /application/php/lib/php/extensions/no-debug-non-zts-20090626/xcache.so
验证xcache
修改php.ini 配置xcache
[root@localhost ~]# cd /application/php/lib/
[root@localhost lib]# ls
php php.ini
[root@localhost lib]# echo >>php.ini
[root@localhost lib]# echo ';xcache config by xiaohu 20160419--------------' >> php.ini
[root@localhost lib]# tail -2 php.ini
;xcache config by xiaohu 20160419--------------
编辑xcache.ini 修改相关配置参数
[root@localhost ~]# vim xiaohu/xcache-3.2.0/xcache.ini
将修改后的xcache加载到php.ini
[root@localhost ~]# cat xiaohu/xcache-3.2.0/xcache.ini >> /application/php/lib/php.ini
查看修改的参数,只修改了相关的参数
检查xcache缓存加速情况
再次执行php命令,查看缓存生效情况