PHP加速器

就是因HTTP的请求都会进行一个过程:把编译解释成操作系统可以直接运行的机器码。这是一个重复的工作,加速器的功能就是把这一过程缓存起来重复使用。常用的加速器有:Alternative PHP Cache (APC)、XCache、eAccelerator。


接下来介绍xcache加速器配置使用流程先:

操作环境:linux5.4+php-5.4.13+mysql-5.5.15+nginx-1.0.11

php加速器工具xcache-2.0.1


首先呢拆解包;后进入拆解目录,然后看 INSTALL说明文件;进行安装 操作;

232350795.jpg


因为这个加速器的源码包、拆解之后并没有configure配置文件,但是呢依然有INSTALL安装目录文件可以供我参照,然后按部就班的操作后进行配置编译完成安装。

232354205.jpg


对于安装操作步骤可以直接依据于 INSTALL 目录文件来步步执行;

执行 vim INSTALL 查看:

232356299.jpg

安装步骤也就是这么几下:

   $ phpize --clean && phpize     说明 可以直接执行这个文件;

   $ ./configure --help           然后就可以 执行 ./configure

   $ CFLAGS='your cflags' ./configure --enable-xcache --enable...  

                                  配置必要参数

   $ make                         编译

   # make install                 安装


然后按要求执行 phpize 先:

phpize 是用来扩展php扩展模块的,通过phpize也可以建立php的外挂模块

232359808.jpg


而后开始配置参数:

( 关于 ./configure,可以使用 --help 需要查看一些必要的脚本配置选项 )

232403569.jpg


然后开始 配置一些必要参数内容;完了就直接make编译 至make install 安装:

232405696.jpg

./configure --enable-xcache                        开启xcache 服务

--with-php-config=/usr/local/php/bin/php-config    配置工具路径


make install安装:

{ 执行之后会显示安装了一个共享的扩展模块,并解析了出模块的位置;所以就需要知道这个模块的位置、知道她在哪、内涵什么参数选项,而php与xcache结合时是怎样调用这个模块的;所以关于这个模块的调用、可以在当前程序目录先找到这个模块的初始化文件 xcache.ini 位置、而后把它拷贝到一个新建能够放置额外配置功能的目录( etc/php5.d/ 这个是在etc目录下可以自建的) 下面;因为php在工作的时候会自动扫描这些目录、所以自然就会自动加载这个文件 [ ( xcache.ini ) 所以优化也是在个模块库里更改设置 ];

但是它又怎么知道它会找到这个模块呢,还需要再编辑 vim xcache.ini 做出一些更改:

其中路径:/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/

( 其中10、12行指明是windows下调用的路径可以使用双分号对此禁用;)}

232409870.jpg


根据上述的做如下可以的设置修改

232412974.jpg


对而于php的加速、正是在 xcache.ini 中 ;可以对 php加速参数选项的设置更改:

( 当然也可以在图形界面的对峙参考更改、在此大致看看都有什么选项参数 )

003204862.jpg

003207826.jpg

003209257.jpg

解析:

  1. ;;这是一个例子

  2. [xcache-common]  


  3. ;; 安装成 zend extension (推荐), 路径一般是 "$extension_dir/xcache.so"


  4. ;; zend_extension = /usr/local/lib/php/extensions/non-debug-non-zts-xxx/xcache.so  

  5. ;; Windows 系统例子:  

  6. ;;zend_extension_ts = D:/php/ext/php_xcache.dll  

  7. ;; 或者您也可把 XCache 安装成 extension, 注意确保您的 extension_dir 设置正确, 并把 xcache.so 或者 php_xcache.dll 放到该目录里面  

  8. ;  extension = xcache.so  

  9. ;; 或者 Win32 系统:(注意:因为我已经设置了extension_dir,所以如下的设置是正确的,如果没有配置extension_dir,需要用zend_extension_ts)  

  10. extension = php_xcache.dll  


  11. [xcache.admin]  

  12. xcache.admin.enable_auth = On  

  13. xcache.admin.user = "username"

  14. ; xcache.admin.pass = md5($您的密码)  


  15. xcache.admin.pass = "password"


  16. [xcache]  

  17. ; 这里的多数选项仅在 ini 里可以修改, 这里列出的都是默认值, 除非另外说明  




  18. ; select low level shm/allocator scheme implemenation  

  19. xcache.shm_scheme =    "mmap"

  20. ; 禁用: xcache.size=0

  21. ; 启用: xcache.size=64M 之类 (任意>0的值) 同时请注意您的系统 mmap 上限  

  22. xcache.size =        64M  

  23. ; 建议设置为 cpu 数 (cat /proc/cpuinfo |grep -c processor)  

  24. xcache.count =         1

  25. ; 只是个参考值, 您可以放心地存储多于此数量的项目(php脚本/变量)  

  26. xcache.slots =        8K  

  27. ; 缓存项目的 ttl, 0=永久  

  28. xcache.ttl  =         0


  29. ; 扫描过期项目的时间间隔, 0=不扫描, 其他值以秒为单位  

  30. xcache.gc_interval =      0

  31. ; 同上, 只是针对变量缓存设置  

  32. xcache.var_size =      32M  

  33. xcache.var_count =       1

  34. xcache.var_slots =      8K  

  35. ; 默认, 允许 ini_set()  

  36. xcache.var_ttl  =       0

  37. ; 最大ttl值  


  38. xcache.var_maxttl  =     0

  39. xcache.var_gc_interval =    0

  40. ; 仅测试用  

  41. xcache.test =        Off  

  42. ; /dev/zero 时无效  

  43. xcache.readonly_protection = Off  

  44. ; 对于 *nix 系统, xcache.mmap_path 是文件路径而不是目录, (可以不存在 但是必须能创建).  



  45. ; 如果您期望启用 ReadonlyProtection, 可以使用类似 "/tmp/xcache"

  46. ; 2 个 php 组不会共享同一个 /tmp/xcache  

  47. ; 对于 Win32 系统, xcache.mmap_path=匿名MAP名字, 不是文件路径. 建议使用 XCache 字眼避免跟其他软件冲突  


  48. xcache.mmap_path =  "zero"

  49. ; 仅用于 *nix 系统  


  50. ; 设置为空(禁用) 或者类似 "/tmp/phpcore/"

  51. ; 注意该目录应该能被 php 写入文件 (跟 open_basedir 无关)  

  52. xcache.coredump_directory =  ""

  53. ; 下面的项目开启后将实现PHP代码缓存  


  54. xcache.cacher =       Off  

  55. xcache.stat  =       Off  

  56. xcache.optimizer =      Off  


  57. [xcache.coverager]  

  58. ; 如果 xcache.coveragedump_directory 设置为空则本设置自动为 Off  

  59. xcache.coverager =     Off  


  60. ; 请确保本目录能被 coverage viewer 脚本读取 (注意 open_basedir)  

  61. ; 依赖于 xcache.coverager=On  

  62. xcache.coveragedump_directory = ""


这里并没有做什么加速的演示更改只是简要过程说明就是在这个位置的设置更改对php缓存参数选项;

配置更改之后还需重启 php-fpm 服务:

232412127.jpg


基于物理http访问:

232413337.jpg

再 编译站点目录下的 index.php 文件:

232414750.jpg


在此访问

232416564.jpg


然后使用admin管理;(这样也就是形成了图形界面化的管理、加速缓存删除更便捷了;)查看admin 目录 里 都是些php的页面,所以可以直接访问这些站点,无论何种方式都可以访问而后进行管理;

( 其实要想作为一个站点,可以有5种方式进行访问 、物理目录、虚拟目录、基于IP、基于端口、基于主机头;)

232420803.jpg


所以就把这个目录拷贝到站点主目录下面;

既然是个目录 ;拷贝的时候应该加递归参数;

但拷贝之后还要做一些处理;因为拷贝目录在里面了、 如果别人进行访问、那就需要对权限的更改;使之可执行:

232422800.jpg


进入admin目录 、对于 index.php 如果想外人想看到里面的内容仍需要有 r 权限:

232426812.jpg


既然是admin的管理:而且是图形界面的就需要有象征性的安全性;添加编辑用户口令:

232430987.jpg


编辑添加如下:

232432768.jpg


对于上面的经 MD5加密的之后的密文形成:

可以有两种方法输出结果都是一样的;

echo -n "admin" |openssl md5

echo -n "admin" |md5sum

 )

232433962.jpg


然后再重启服务后再进行物理访问:

service php-fpm restart


232434552.jpg


输入用及口令登录显示图形界面管理加速器

232435717.jpg

在图形界面看到的还是比较直观的、便于与操作的管理;PHP加速有多种方法;这里只是给xcache举个实例;

里面看到一些 与xcache相关的模块;i图形界面的可以在此对缓存的管理清除;依此来变也可加快数据库调用。以他为例再说说Xcahce的2个特点:
一能将PHP代码进行编译(表现类似于.NET和JAVA的编译,内部机制不同),这样可以不用重复读取PHP文件,加速整个程序的运行效率。
二可以缓存数据到内存中,直接可以方便调用,例如你的一些不会经常改动的数据,只用一次从数据库读取出来后保存到Xcache中,就不用再去使用数据库了。


其他的加速器:

一:

XCache 是一个不仅快而且稳定的 PHP opcode 缓存器;它通过把编译 PHP 后的数据缓冲到共享内存从而避免重复的编译过程,能够直接使用缓冲区已编译的代码从而提高速度。

XCache是一套快速稳定的PHP代码加速器。在Linux下测试,高负载状况下表现良好,同时还支持ThreadSafe/Windows。

二:

Zend Optimizer用优化代码的方法来提高PHP应用程序的执行速度。实现的原理是对那些在被最终执行之前由运行编译器(Run-Time Compiler)产生的代码进行优化。

三:

eAccelerator 是一个免费开源的PHP加速、优化、编译和动态缓存的项目,它可以通过缓存PHP代码编译后的结果来提高PHP脚本的性能,使得一向很复杂和离我们很远的PHP脚本编译问题完全得到解决。通过使用eAccelerator,可以优化你的PHP代码执行速度,降低服务器负载,可以提高PHP应用执行速度最高达10倍。