当前位置:首页 > CN2资讯 > 正文内容

PHP加速

2天前CN2资讯

                                         PHP加速

实验环境:

CentOS6.4 32位系统

VMware workstation 10

php-5.4.24.tar.bz2

zendopcache-7.0.2.tgz



php和per以及ptyon,rubby,等都属于脚本类的语言,执行时都要进行翻译,叫做opcode(操作码

,字节码),但是,可想而知,对网站页面来说这是一项非常大的工作量,所以我们可以将那些翻译

过的opcode存入缓存当中,以提高网站的运行速度


opcode是计算机指令中的一部分,用于指定要执行的操作, 指令的格式和规范由处理器的指令规范

指定。 除了指令本身以外通常还有指令所需要的操作数,可能有的指令不需要显式的操作数。 这些

操作数可能是寄存器中的值,堆栈中的值,某块内存的值或者IO端口中的值等等。

通常opcode还有另一种称谓:字节码(byte codes)。 例如Java虚拟机(JVM),.NET的通用中间语言

(CIL: Common Intermeditate Language)等等。


PHP中的opcode则属于前面介绍中的后着,PHP是构建在Zend虚拟机(Zend VM)之上的。PHP的opcode

就是Zend虚拟机中的指令


运行一段PHP代码主要有两个阶段:编译和执行。 当然编译过程中还包括词法分析语法分析不同阶段

和细节,这里我们将其作为一个整体。在这两个阶段之间,PHP代码会被编译成op code,可以将其认

为是引擎的一个中间语言,编辑阶段把PHP源码生成op code,然后在执行阶段执行这些op code。


下面我们就来以实例说一下zend_opcache如何与php5.4版本的结合,因为在5.5以后的时代php自带的有一套自己opcache,可以在源代码的配置编译中自带--enable-opcache来实现加速,所以,我们这样做的目的也是为了帮助低版本php的性能提升

<一>(php5.4+zendopcache)

主要的操作步骤如下:

安装php5.4,(源代码)并编译配置,

[root@localhost src]# tar -jxvf php-5.4.24.tar.bz2  -C /usr/local/src

[root@localhost php-5.4.24]# ./configure --prefix=/usr/local/php  --with-


apxs2=/usr/local/apache/bin/apxs  --with-mysql=/usr/local/mysql --with-


mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring=all


[root@localhost ~]#make && make install

之后我们可以去目录下确认一下编译安装及目录情况

[root@localhost ~]# cd /usr/local/apache/htdocs/

然后我们编写一个小的调用php数据的页面


[root@localhost htdocs]# vim index.php

内容如下:




然后修改Apache配置文件让他能解析.php文件,修改后如下:


解压zendopcache-7.0.2.tgz 文件,如果你想了解详细的安装步骤及解释可以参考README文件








在进入该页面后,你会发现它并没有一般所有源码软件都应该具有的./configure命令(绿色可执行文件),这是因为zendopcache是作为一款支持软件出现的,它要做的是利用php的phpize扩展命令来实现的


[root@localhost zendopcache-7.0.2]# /usr/local/php/bin/phpize

Configuring for:

PHP Api Version:         20100412

Zend Module Api No:      20100525

Zend Extension Api No:   220100525

执行后结果,就有了我们需要的./confugure,如图



然后,执行正常的编译步骤:

并且安装:

[root@localhost zendopcache-7.0.2]# make && make install

结果会提示我们新安装了这么一个共享文件:

在make install这步中,将复制进PHP extension 目录中,而我们就要在这个目录中用

他,上面的信息告诉我们在那样一个目录下有,查看到这个文件后,接着我们就要对他进行编辑,

然后利用php5.4的支持文件(软件支持的扩展)编写一个支持zendopcache-7.0.2的配置文件



在这个文件中我们可以看到在dba的选项中并没有有关opcache字段,所以,我们要手动加进去,如图



主要是一些配置参数及路径地址和一些控制语句





重启我们的服务,可以先用浏览器测试我们的文件是否配置正确,正确的话会在页面信息中反馈出来。如图:



然后我们简单建立一个站点,并用它进行测试




访问测试,并登录这个网站





接着我们利用专业的测试工具进行测试,如ab,httpd_loader,其中ab为Apache自带的压力测试工具,我们就以他为例,你也可以用其它的进行测试


然后我们关闭掉opcache功能,并比较两者之间的差异(因为我们的网站比较小,所以效果不会和正常测试那么悬殊,但效果依然很明显)


[root@localhost htdocs]# cd /usr/local/apache/bin/

[root@localhost bin]# ./ab -n 100000 http://192.168.1.199/phpMyAdmin-4.1.5-all-

languages

其中 -n表示一共的执行次数,-c表示每次的执行次数


[root@localhost bin]# ./ab -n 100000 http://192.168.1.199/phpMyAdmin-4.1.5-all-


languages

This is ApacheBench, Version 2.3 <$Revision: 1430300 $>

Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/

Licensed to The Apache Software Foundation, http://www.apache.org/


Benchmarking 192.168.1.199 (be patient)

Completed 10000 requests

Completed 20000 requests

Completed 30000 requests

Completed 40000 requests

Completed 50000 requests

Completed 60000 requests

Completed 70000 requests

Completed 80000 requests

Completed 90000 requests

Completed 100000 requests

Finished 100000 requests



Server Software:        Apache/2.4.4

Server Hostname:        192.168.1.199

Server Port:            80


Document Path:          /phpMyAdmin-4.1.5-all-languages

Document Length:        260 bytes


Concurrency Level:      1

Time taken for tests:   34.785 seconds

Complete requests:      100000

Failed requests:        0

Write errors:           0

Non-2xx responses:      100000

Total transferred:      52000000 bytes

HTML transferred:       26000000 bytes

Requests per second:    2874.76 [#/sec] (mean)

Time per request:       0.348 [ms] (mean)

Time per request:       0.348 [ms] (mean, across all concurrent requests)

Transfer rate:          1459.84 [Kbytes/sec] received


Connection Times (ms)

             min  mean[+/-sd] median   max

Connect:        0    0   0.0      0       1

Processing:     0    0   1.0      0     307

Waiting:        0    0   0.0      0       0

Total:          0    0   1.0      0     307


Percentage of the requests served within a certain time (ms)

 50%      0

 66%      0

 75%      0

 80%      0

 90%      0

 95%      0

 98%      0

 99%      0

100%    307 (longest request)


<二> xcache加速器的安装与使用



和zend_opcache类似,它也要用到php的ize功能,(使用phpize(模块扩展)),增加./configure文件)如图



[root@localhost xcache-3.1.0]# ./configure --enable-xcache --with-php-


config=/usr/local/php/bin/php-config



[root@localhost xcache-3.1.0]# make && make install

会看到算上上一步我们的执行结果,在文件路径下,因该会看到如下结果


因为这个时候已经有了php.ini这样的配置文件,所以我们只需要将新的配置文件追加进去就可以了

并用exstension= 加入具体地址,如图:


[root@localhost no-debug-zts-20100525]# cat /usr/local/src/xcache-3.1.0/xcache.ini

>> /usr/local/php/lib/php.ini

[root@localhost no-debug-zts-20100525]# vim /usr/local/php/lib/php.ini

[root@localhost no-debug-zts-20100525]# service  httpd restart

the httpd is stoping....

ok

the httpd is starting...

ok


利用页面进行测试,并寻找xcache选项




然后测试xcache,为了保证,xcache的测试效果,我们要将先前安转的opcache禁用掉,如图



重启我们的Apache服务器,

root@localhost no-debug-zts-20100525]# vim  /usr/local/php/lib/php.ini

[root@localhost no-debug-zts-20100525]# service httpd restart

the httpd is stoping....

ok

the httpd is starting...

ok

[root@localhost no-debug-zts-20100525]# cd /usr/local/apache/bin/

[root@localhost bin]# ./ab -n 100000 http://192.168.1.199/phpMyAdmin-4.1.5-all-

languages

This is ApacheBench, Version 2.3 <$Revision: 1430300 $>

Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/

Licensed to The Apache Software Foundation, http://www.apache.org/


Benchmarking 192.168.1.199 (be patient)

Completed 10000 requests

Completed 20000 requests

Completed 30000 requests

Completed 40000 requests

Completed 50000 requests

Completed 60000 requests

Completed 70000 requests

Completed 80000 requests

Completed 90000 requests

Completed 100000 requests

Finished 100000 requests



Server Software:        Apache/2.4.4

Server Hostname:        192.168.1.199

Server Port:            80


Document Path:          /phpMyAdmin-4.1.5-all-languages

Document Length:        260 bytes


Concurrency Level:      1

Time taken for tests:   34.452 seconds

Complete requests:      100000

Failed requests:        0

Write errors:           0

Non-2xx responses:      100000

Total transferred:      52000000 bytes

HTML transferred:       26000000 bytes

Requests per second:    2902.60 [#/sec] (mean)

Time per request:       0.345 [ms] (mean)

Time per request:       0.345 [ms] (mean, across all concurrent requests)

Transfer rate:          1473.98 [Kbytes/sec] received


Connection Times (ms)

             min  mean[+/-sd] median   max

Connect:        0    0   0.0      0       1

Processing:     0    0   0.7      0     205

Waiting:        0    0   0.1      0      21

Total:          0    0   0.7      0     205


Percentage of the requests served within a certain time (ms)

 50%      0

 66%      0

 75%      0

 80%      0

 90%      0

 95%      0

 98%      0

 99%      0

100%    205 (longest request)

[root@localhost bin]#


结果,比我们的zend_opcache 还要好一些,但这些测试结果,与机器平台有很大的关系,可能不同的人测试有不同的结果


最后为了便于对来xcache的管理,我们可以在他的配置文件中的如图所示的字段进行如下修改,来方便对它进行性能上的控制,以admin用户为例:


在它要求我们输入MD5加密的密码时我们可以这么做


[root@localhost ~]# echo -n "123456"|md5sum

e10adc3949ba59abbe56e057f20f883e  -

[root@localhost ~]#


产生那堆数字就是加密后的结果,把它加进去



重启Apache

[root@localhost]# service httpd restart

the httpd is stoping....

ok

the httpd is starting...

ok

如图




输入密码登录进去之后,我们可以看到很直观的控制参数展示,如图




比如缓存的大小,已经使用的和没有使用的等等;


还可以实现对xcache的日常检测及维护,如图,可以显示对xcache的各种诊断结果:


关于php的加速,在互联网上有很多,自由的以及收费的各种软件,十分的齐全,在这我们就一这样两个典型的例子为例,希望能给大家带来帮助。

    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/26362.html

    标签: PHP加速PHP
    分享给朋友:
    返回列表

    上一篇:php HttpOnly

    下一篇:PHP ADOdb

    “PHP加速” 的相关文章

    CN2线路多少钱?选用指南与成本分析

    CN2线路多少钱?影响价格的几大因素在当今数字化时代,企业对网络的需求早已不仅仅局限于基本的连接,而是追求更快、更稳定、更安全的专线服务。CN2线路作为中国移动推出的高品质网络专线,凭借其低延迟、高带宽、高稳定的特性,成为许多企业优化网络架构的首选。很多企业在选择CN2线路时,都会面临一个关键问题—...

    选择合适的域名注册商,轻松完成域名注册流程

    在如今数字化的时代,域名注册变得越来越重要。它不仅是建立个人或企业在线身份的第一步,也是一种品牌保护和业务推广的手段。在互联网上,域名就像是你的地址,方便别人找到你。因此,选择一个合适的域名注册商显得尤为重要。 域名注册商,是那些提供域名注册、管理和支持服务的公司。可以想象成他们是光明正大的中介,帮...

    狗云服务器怎么样?性能、服务与性价比全面解析

    狗云服务器(DogYun)自2019年成立以来,逐渐在国内云服务市场上崭露头角。最初的时候,我也只是偶然听说了这个名字,当时在寻找性能稳定又价格合理的云服务供应商时,恰好遇到了狗云。他们承诺提供高性价比的项目,这让我对他们充满了好奇。经过一番了解,发现狗云不仅仅是个新兴品牌,而是通过自身的技术积累和...

    全面掌握BBR加速技术,提升网络传输效率的终极指南

    在现代网络传输中,带宽的利用与数据传输的速度变得尤为重要。提到这里,BBR加速即以其独特的方式引起了不少人的关注。BBR,或者称为Bottleneck Bandwidth and Round-trip propagation time,是一种新的TCP拥塞控制算法,旨在优化网络性能。BBR的核心思想...

    国外常用的远程连接软件推荐与安全使用指南

    在这个数字化迅速发展的时代,远程连接软件变得越来越重要。简单来说,远程连接软件是一种能够让用户通过互联网连接并控制另一台计算机的工具。这个概念最初可能让人感到陌生,但其实它早已渗透到我们的日常工作和生活中。无论是在家工作、技术支持,还是与朋友共享屏幕,这类软件都发挥着巨大的作用。 我想,如果没有远程...

    Fuser软件:数据整合与管理的高效解决方案

    Fuser软件概述 在现代科技迅速发展的背景下,Fuser软件作为一款数据整合与管理工具,逐渐走入了人们的视野。Fuser的设计初衷是帮助用户有效处理和管理海量数据,使得信息的获取和使用变得更为高效。我首次接触Fuser时,便被其简洁的界面与强大的功能所吸引。了解这一软件的定义与背景,能够让我们更好...