首页 > 代码库 > Apache、Nginx 与php缓冲加速模块

Apache、Nginx 与php缓冲加速模块

环境:

    Linux moban 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64     x86_64 GNU/Linux

    mysql-5.5.32-linux2.6-x86_64、apache2.2.27、php5.3.27、nginx-1.6.2 、                   eaccelerator0.9.6、xcache-1.3.2、PDO_MYSQL-1.0.2、ImageMagick-6.5.1-2、


一、php加速之前先了解一下Apache、nginx相关的知识,有这么几点:

    1、 纯php的并发一般在几百个左右,优化后500-1000已经很不错了。

    2、Apache和php的原理:用户通过浏览器访问apache服务器,如果是静态请求apache服务器就自

        行就处理了,如果是动态请求(php)apahe会交给libphp5.so这个模块来连接php处理(编译

        解析)动态请求,解析后把结构返回给apache,apache在提交给用户,如果涉及到数据库他

        会 调用数据库来返回请求。如何提高php的解析呢?缓存,把php解析的结果缓存,称之为

        操作码缓存,是一个二进制的表现形式,当下一次请求调用同一个页面的时候会重复调用,节          节省php重复编译的时间,提高php执行效率;当然也可以在数据库、存储一边优化来提高

        效率。 

    3、nginx和apache 与php大体相同,只不过nginx是通过fastcgi来调用php来处理动态请求,加速

        也是利用缓存的形式来提高php的解析效率。  

二、调整字符集:

    echo ‘export LC_ALL=C‘>>/etc/profile

    source /etc/profile 

    #字符集会影响正则表达式的匹配;

    echo $LC_ALL

    #返回为C 就可以确认无误;

    yum install perl-devel -y

    #由于php的加速器好多是perl语言写的,所以最好提前安装,否则出现问题。


三、其次要注意几点,

    1、准好环境,lamp、lnmp,需要关注的是它的编译参数(如何查看编译参数后续慢慢补充);

    2、备份,相当重要;

    3、记录自己的每一步操作步骤,注意查看每一步执行的结果;磨刀霍霍不误砍柴!

    4、创建一个自己的存放、安装软件目录,方便寻找,这是养成好习惯的开始,

    暂时先想到这么多吧。

四、介绍几个加速器:eaccelerator、xcache、Zend、apc,建议选择前两个,生产环境最好使用一个

    加速软件,如果是测试环境随便搞。

    1、eaccelerator 缓存加速模块是一个自由开放的缓存加速、优化和动态内容缓存的扩展模块,

       可以提升php程序的缓存性能,降低php程序在解析时对服务器性能的开销。缺点就是开发不活跃

       安装:

            tar jxf eaccelerator-0.9.6.tar.bz2

            cd eaccelerator-0.9.6

            /application/php/bin/phpize 

            #根据自己phpize的路径,执行外挂模块,这是php安装第三方插件的时候几乎都要执行;

            Configuring for:

            PHP Api Version:         20090626

            Zend Module Api No:      20090626

            Zend Extension Api No:   220090626

            #这是执行phpize返回的结果。

            ./configure  --enable-eaccelerator=shared --with-php-config=/application/php/bin/php-config

            make && make install 

            ls  ../php5.3.27/lib/php/extensions/no-debug-non-zts-20090626/

            eaccelerator.so

            #完成后会生成一个eaccelerator.so的模块,如果有表示成功;

            这里要注意lamp和lnmp环境的生成eaccelerator.so文件路径的区别

            lamp路径:../php5.3.27/lib/php/extensions/no-debug-zts-20090626/

            lnmp路径:../php5.3.27/lib/php/extensions/no-debug-non-zts-20090626/    

            完毕。

            注意:php5.3.. 可以用eaccelerator-0.9.6版本,如果使用0.9.5.2版本会报错啊,解

                  决不了,自己看官方文档吧。

    2、XCache也是一个又快又稳的php缓存加速器,和eaccelerator差不多吧,开发比较活跃。

        安装:

            tar jxf xcache-1.3.2.tar.bz2 j_0005.gif

            cd xcache-1.3.2

            /application/php/bin/phpize

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

            echo $?

            make &&make install

            ls /application/php5.3.27/lib/php/extensions/no-debug-non-zts-20090626/

            ls /application/php5.3.27/lib/php/extensions/no-debug-zts-20090626/

            #如果生成xcache.so模块表示成功。

    3、Zend插件 官网:http://www.zend.com/

      目前Zend只支持php5.2的版本,意味着5.3的不支持,所以这里搞不了。

    4、memcache数据库缓存扩展模块,它是C/S模式的,分为服务端和客户端,是用来存内存的。

       (服务端memcached), 此处安装的是客户端。

        安装:

            tar xf memcache-2.2.5.tgz 

            cd memcache-2.2.5

            /application/php/bin/phpize 

            ./configure  --with-php-config=/application/php/bin/php-config 

            echo $?

            make &&make install

            #在上述同样的路径下查看是否生成memcache.so  这个模块,如果有表示成功。

    5、安装PDO——MYSQL扩展模块,这是为了扩展php访问数据库定义一个轻量级、一致性的接口。

        下载地址:wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.TGZ 

        安装:

            tar xf PDO_MYSQL-1.0.2.tgz 

            cd PDO_MYSQL-1.0.2

            /application/php/bin/phpize 

            ./configure  --with-php-config=/application/php/bin/php-config                          --with-pdo-      mysql=/application/mysql

            echo $?

            make 

            echo $?

            make install

            #在上述同样的路径下查看是否生成pdo_mysql.so 这个模块,如果有表示成功。

              忘记说了,有些程序可能需要PDO,不是必须安装。所以可选。

    6、图像处理程序ImageMagick,免费滴,且稳定的工具集和开发包,用来读、写、处理各种格式 

       的图片。

       安装:

            cd ImageMagick-6.5.1-2/

            ./configure

            echo $?

            make

            echo $?

            make install

            echo $?

    7、imagick 插件工作需要ImageMagick软件的支持,所以必须先安装ImageMagick ,否则会报错;

       装了ImageMagick图像程序后,在装php的扩展imaick插件,才能使用ImageMagick提供的api来

       进行图片的创建与修改、压缩等操作,都集成在imaick 这个扩展中。

        安装:

            tar  zxf imagick-2.3.0.tgz 

            cd imagick-2.3.0

            /application/php/bin/phpize 

            ./configure --with-php-config=/application/php/bin/php-config 

            echo $?

            make 

            echo $?

            make install

            #在上述同样的路径下查看是否生成imagick.so 这个模块,如果有表示成功。

五、整合php的加速缓存扩展模块。

    注意:php 的默认配置文件在/php/lib下,如果你是/etc下这是你在编译的时候指定的。

    vi ../php/lib/php.ini

    #注意在php.ini的注释不是#是;

    819 ;extension_dir = "./"

    819 extension_dir = "/application/php/lib/php/extensions/no-debug-zts-200906        26/"

    #去掉;注释,添加插件的路径,不要忘记lamp和lnmp的路径是不一样的。

    1920 ;--cache---------------- 

    1921 extension = memcache.so

    1922 extension = pdo_mysql.so

    1923 extension = imagick.so

    1924 ;---cache--------------

    #末尾添加,上述三行,这是为了刚才安装的插件生效,它们不需要配置文件,直接放里边就好了。

    接着lamp重启apache即可,lnmp要重启php、nginx。


六、配置eaccelerator插件生效;

    1、创建eacclerator缓存目录:mkdir -p /tmp/eaccelerator

    #这是为了可以用tmpfs内存文件系统来存储(可以放在固态硬盘,或内存)

    #注意要根据自己的用户来lamp、lnmp环境运行的用户来授权。

    #tmp目录的权限不要随意修改,出问题有时候不好排除。

    2、cat >> /application/php/lib/php.ini<<EOF

       [eaccelerator]

        extension=eaccelerator.so

        #查找.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

        #注意添加完成后,要查看检查一遍,基本上是缓存的设置,不是很需要关注。

    3、查看是否生效:

         /application/php/bin/php -v

        PHP 5.3.27 (cli) (built: Nov  3 2014 13:16:34) 

        Copyright (c) 1997-2013 The PHP Group

        Zend Engine v2.3.0, Copyright (c) 1998-2013 Zend Technologies

        with eAccelerator v0.9.6, Copyright (c) 2004-2010 eAccelerator, by eAccelerator


        #需要关注eAccelerator。

        #查看缓存目录是否生成内容:ll /tmp/eaccelerator/  ;tree查看;

        #用搭建好的网站访问一下,看看里边是否生成文件。

七、xcache 配置:

    1、xcache的配置文件: ls  /home/oldboy/tools/xcache-1.3.2/xcache.ini 

       调整: 3 zend_extension = /usr/local/lib/php/extensions/non-debug-non-zts-xxx/xca        che.so

               6 ;zend_extension_ts = c:/php/extensions/php_xcache.dll

               8 extension = xcache.so

               25 xcache.size  =                128M

               27 xcache.count =                 2

               31 xcache.ttl   =                 86400

               33 xcache.gc_interval =           3600

    2、追加到php.ini 文件中:

               echo ‘;xcache config---------------------‘ >>php.ini

               cat    /home/oldboy/tools/xcache-1.3.2/xcache.ini>>php.ini

    3、        /application/php/bin/php -v

        报错:

        PHP Warning:  Cannot load module ‘XCache‘ because conflicting module ‘eAccelerator‘ is already loaded in Unknown on line 0 (警告和eacc冲突)

        解决:eacc和xcache选择一个使用。

    4、  /application/php/bin/php -v    

  完毕!!!



                


        

    

         



    

    



 

    

               

            



            

    

本文出自 “一如既往” 博客,谢绝转载!

Apache、Nginx 与php缓冲加速模块